補碼與C++的應用

12.inti=(int)((unsigned int)0xffffffff+(unsigned int)0xffffffff);函數

  printf(「%d」,i);結果是:Cspa

A.0                    B.-1                   C.-2                   D.2二進制

 

1.求下面函數的返回值數據

int func(int a)while

{co

int count=0;background

while(a)位運算

{return

count++;printf

a=a&(a-1);

}

return count;

}

假設a=911,則函數返回值是:7

 

 

能夠看到,咱們到底何時用原碼,何時用補碼計算呢?

其實很簡單,

當題目給出int x=0x123等等直接用二進制表示的數據時,就用補碼計算,

若是給出那種用十進制常量賦值後,再進行位運算等等,所有用原碼計算就行,咱們能夠封裝黑盒地看待補碼轉換

 

有了以上兩個原則,第二題實際上就是將a的原碼的最右邊的1變爲0,一直到所有的1都變爲0

相關文章
相關標籤/搜索