int max(int a, int b) {
int m = (a - b) >> 31;
return ((a ^ b) & m) ^ a;
}
あってるかな??