當前位置:文思屋>社會工作>求職指導>

新大陸硬體筆試題

文思屋 人氣:9.22K

求返回值並描述用途

新大陸硬體筆試題

int Func(int x)

{

int count = 0;

while(x)

{

x = x & (x - 1);

count++;

}

return count;

};

x=678

============

含義:這條語句執行一次,就會把x用二進位制格式表示時的最右邊的一個二進位制1變為二進位制0,因為x-1會將該位(x用二進位制表示時最右邊的一個二進位制1)變為0;

應用1:把一個整數用二進位制表示時,其中二進位制1的'個數;

設x=9999,其二進位制格式為: 10011100001111; 則count=8;

思路:將x轉化為二進位制格式,統計一下含有的二進位制1的個數;

應用2:判斷一個整數(x)是否是2的n次方;

int Func(int x)

{

if((x & (x - 1)) == 0)

{

return 1; //是

}

else

{

return 0; //否

}

};

思路:如果一個整數是2的n次方,那麼,這個數用二進位制表示時,其最高位為二進位制1,其餘位為二進位制0;