關於或運算的乙個題目

2021-06-25 23:07:45 字數 955 閱讀 4888

如果x = 2014,

下面函式的返回值是(

23) 

//二進位制(unsigned int 32

位)中0

的個數。 

int fun(unsigned int x) 

return  n; }

while迴圈終止的條件:當

while

迴圈裡的

x計算到unsigned int的最大值(即0xffffffff)時迴圈就會停止。

在迴圈中,每執行x=x|(x+1)

語句一次,得到的

x的二進位制中

0的個數就比原來少1;

2014的二進位制為 

00000000  00000000 00000111 11011110

。其中0的個數為

23個。所以執行23

次後,迴圈中得到的n為

23,x=0xffffffff; 

再次判斷,此時

x+1大於

oxffffffff.

while迴圈中詳細過程:

n=1,x為 

00000000  00000000 00000111 11011111.

n=2,x為 

00000000  00000000 00000111 11111111.

n=3,x為 

00000000  00000000 00001111 11111111. ……

n=23,x為

0xffffffff (十進位制2147483648)

。此時x+1

為0,while

迴圈終止。

輸出x+1的過程如下:

注:此演算法可用於求二進位制中0個數,將引數x型別由unsigned int 改為int 也成立。

python乙個關於比賽順序的題目

python桌球比賽順序練習題,是關於兩個桌球隊進行比賽,具體python問題是這樣的。簡述 已知有兩支桌球隊要進行比賽,每隊各出三人 甲隊為a,b,c三人,乙隊為x,y,z三人 已抽籤決定比賽名單。問題 有人向隊員打聽比賽的名單。a說他不和x比,c說他不和x,z比,請程式設計序找出三隊賽手的名單。...

關於乙個面試題目

曾經碰到乙個面試題目,誰能給出標準答案呢?200個小孩圍乙個圈,從頭開始1到4報數,報到4這個數的退出圓圈,最後乙個留在圈裡的小孩編號是多少?在網上看到很多人給出的答案是 標準答案.public static void main string args while list.size 4 syste...

乙個關於位運算的小題目,基礎差真可怕

題目 3 4 2 8 求結果 解答 思路 a 3 4 b a 2 c b 8 3 4 7,7 2相當於把7擴大2的2次方倍,為28,是按位異或運算子,把兩個數的二進位制形式進行比較,相同的得0,不同的得1,負數用補碼進行運算,正數的原碼反碼補碼一樣,8的二進位制為00001000,反碼為111101...