C語言經(jīng)典筆試題解析,原來微軟筆試題也有簡單的,C語言學(xué)習(xí)專題
2020-05-11 15:44 作者:C語言基礎(chǔ) | 我要投稿

前言
本文主要介紹的是C語言位運算的一道題,這是微軟筆試題中的一道比較簡單的的題目,希望對于廣大讀者學(xué)習(xí)C語言有一些幫助。深入了解C語言小知識,看題講程序作用:
int func(x)
{
? ?int countx =0;
? ?while(x)
? ?{
? ? ? ? ?countx ++;
? ? ? ? ?x = x&(x-1);
? ? }
? ?return countx;
}
知識解析
&:按位與運算
a&b:先把a和b轉(zhuǎn)換為二進制然后 按照每一個二進制位按照邏輯與的運算規(guī)則去運算
例如: 2&1的運算如下:

題目分析
通過觀察2&1的過程,即可以知道程序是將x轉(zhuǎn)化為2進制看含有的1的個數(shù)。如果看的還不是很清楚的同學(xué),你可以再自己寫個3&2的過程,再去體會下。故如果x傳入9999,則打印返回值應(yīng)該是:8,運行測試結(jié)果如下:

標簽: