題解:在32位的編譯器中,乙個int是32位的。由於數字在計算機中以反碼表示,所以如果c的值為負值則第32位為1,於是右移31位後得到c=1,同理若c值為正,則c=0。
#include
using
namespace std;
intmy_max
(int x,
int y)
;unsigned
int c;
c = x - y;
c >>=31;
return text[c];}
intmain()
#include
using
namespace std;
intmy_min
(int x,
int y)
intmy_max
(int x,
int y)
intmain()
不用任何比較判斷找出兩個數中較大的數
題目 給定兩個32位整數a和b,返回a和b中較大的。要求 不用任何比較判斷。將判斷轉換位運算實現 sign獲取符號位,flip翻轉符號位 判斷a b的符號位 符號位為0表示為正,符號位為1表示為負 為正返回a,為負返回b 因此same flip sign a b a sign a b b返回同號兩者...
不用比較找出兩個數比較大的數
看到這個題目,我的腦中真的是 正文 我們通常怎麼比較兩個數的大小呢?c a b 若c 0則a b 若c 0 則a若c 0則a b 那怎麼用c語言表示呢?我們知道32位整數中有乙個位元位為符號標誌位,正數為0,負數為1。即判斷c的標誌位,我們就可以知道a大還是b大 int symbol int num...
找出兩個List 中不同的元素
public class collectionutil 找出兩個集合中不同的元素 param collmax param collmin return public static collection getdifferent collection collmax,collection collmi...