8_4ビット演算比較サイズ
700 ワード
2つの32ビット整数aおよびbの場合、アルゴリズムは、aおよびbのうちより大きい値を返すように設計される.しかし、いかなる比較判断もできない.2つの数が同じ場合は、いずれかを返します.
2つの整数aとbを指定し、大きな数を返します.
テストサンプル:入力:1,2戻り:2
2つの整数aとbを指定し、大きな数を返します.
テストサンプル:入力:1,2戻り:2
class Compare {
public:
int flip(int n)
{
return n^1;
}
int sign(int n)
{
return flip((n>>31) & 1);
}
int getMax(int a, int b) {
// write code here
// 1, 0
int as = sign(a);
int bs = sign(b);
int cs = sign(a-b);
int diff_ab = as^bs; // 1, 0
int same_ab = flip(diff_ab); // 1, 0
int returnA = diff_ab*as + same_ab*cs;
int returnB = flip(returnA);
return a*returnA + b*returnB;
}
};