按位取反運算符的方法?
二進制數(shù)在內(nèi)存中以補碼的形式存儲。
按位取反:二進制每一位取反,0變1,1變0。
~9的計算步驟:
轉(zhuǎn)二進制:0 1001
計算補碼:0 1001
按位取反:1 0110
轉(zhuǎn)為原碼:
按位取反:1 1001
末位加一:1 1010
符號位為1是負數(shù),即-10
var x = 10;
在計算機中一個整型數(shù)4字節(jié),1字節(jié)8位,所以數(shù)字10在計算機中存儲占32位,即
00000000 00000000 00000000 00001010,
按位取反,得
11111111 11111111 11111111 11110101,
這個二進制數(shù)據(jù)就是“~10”,最高位是1表示它是個負數(shù),那么我們?nèi)绾无D(zhuǎn)化為十制數(shù)呢?
這里又涉及到了負數(shù)在計算機里的存儲問題,計算機里,負數(shù)以其正值的補碼形式存在。