快速找出兩個變數a,b中較大的那個變數

2021-10-04 07:38:09 字數 527 閱讀 6334

題解:在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...