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