#include <stdio.h>
int main(void) {
int v, w, x, y;
// absolute value
v
= 7; printf("abs(%d) = %d\n", v
, (v
>0)*v
+(v
<0)*-v
); v
= -7; printf("abs(%d) = %d\n", v
, (v
>0)*v
+(v
<0)*-v
);
// power of two
w
= 7; printf("is %d a power of two: %d\n", w
, w
&& !(w
& (w
-1))); w
= 8; printf("is %d a power of two: %d\n", w
, w
&& !(w
& (w
-1)));
// min and max
x
= 7; y
= 8; printf("min(%d, %d) = %d\n", x
, y
, y
^ ((x
^ y
) & -(x
< y
))); x
= 7; y
= 8; printf("max(%d, %d) = %d\n", x
, y
, x
^ ((x
^ y
) & -(x
< y
)));
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgbWFpbih2b2lkKSB7CiAgICBpbnQgdiwgdywgeCwgeTsKCQogICAgLy8gYWJzb2x1dGUgdmFsdWUKICAgIHYgPSAgNzsgcHJpbnRmKCJhYnMoJWQpID0gJWRcbiIsIHYsICh2PjApKnYrKHY8MCkqLXYpOwogICAgdiA9IC03OyBwcmludGYoImFicyglZCkgPSAlZFxuIiwgdiwgKHY+MCkqdisodjwwKSotdik7CiAgICAKICAgIC8vIHBvd2VyIG9mIHR3bwogICAgdyA9IDc7IHByaW50ZigiaXMgJWQgYSBwb3dlciBvZiB0d286ICVkXG4iLCB3LCB3ICYmICEodyAmICh3LTEpKSk7CiAgICB3ID0gODsgcHJpbnRmKCJpcyAlZCBhIHBvd2VyIG9mIHR3bzogJWRcbiIsIHcsIHcgJiYgISh3ICYgKHctMSkpKTsKICAgIAogICAgLy8gbWluIGFuZCBtYXgKICAgIHggPSA3OyB5ID0gODsgcHJpbnRmKCJtaW4oJWQsICVkKSA9ICVkXG4iLCB4LCB5LCB5IF4gKCh4IF4geSkgJiAtKHggPCB5KSkpOwogICAgeCA9IDc7IHkgPSA4OyBwcmludGYoIm1heCglZCwgJWQpID0gJWRcbiIsIHgsIHksIHggXiAoKHggXiB5KSAmIC0oeCA8IHkpKSk7CgkKICAgIHJldHVybiAwOwp9Cg==