計算過程為
1 先將1按位取反,即計算~1, 結果為除最低位為0外,其它位均為1;
2 計算左移1位,低位補0,於是結果的最低2位為0,其它為為1;
3 將2中結果按位取反,得到結果為,最低2位為1,其它為為0;
所以最終結果為3。
二、
在C語言中,負數是以補碼方式存放的,計算方法為,負數絕對值對應數值的二進制值,按位取反後再加壹。
當負數按位取反時,就是其補碼按位取反。
比如,-10在存儲為char型時,10的二進制值為0000 1010,取反後為1111 0101, 加壹得到補碼的二進制值為 1111 0110, 所以-10在存為char型時,補碼的16進制值形式為0xF6.
當-10取反時,就是把1111 0110取反,結果為0000 1001, 結果為10進制的9。