題目1: ~2=?php
2的原碼:00000000 00000000 00000000 00000010 正數的原碼、補碼、反碼同樣web
~$a ,按位取反 ,將 $a 中爲 0 的位設爲 1,反之亦然。spa
解題思路:1.首先找出2的補碼code
2.所有取反後的補碼:11111111 11111111 11111111 11111101blog
3.取反後的反碼:11111111 11111111 11111111 11111100ci
4.取反後的原碼:10000000 00000000 00000000 00000011input
5.計算後的數字結果:-3it
題目2: 2&3 =?io
$a&$b 將把 $a 和 $b 中都爲 1 的位設爲 1。table
解題:
1.2的補碼:00000000 00000000 00000000 00000010
3的補碼:00000000 00000000 00000000 00000011
2.都爲1的設置爲1以後補碼爲 : 00000000 00000000 00000000 00000010
3.反碼爲不變
4.原碼爲不變
5.計算數值爲:2
題目3: -3>>2 = ?
向任何方向移出去的位都被丟棄。左移時右側以零填充,符號位被移走意味着正負號不被保留。右移時左側以符號位填充,意味着正負號被保留。
解題:
-3的原碼: 10000000 00000000 00000000 00000011
-3的反碼: 11111111 11111111 11111111 11111100
-3的補碼: 11111111 11111111 11111111 11111101
補碼右移兩位後的補碼:11111111 11111111 11111111 11111111
補碼->反碼:11111111 11111111 11111111 1111110
反碼->原碼:10000000 00000000 00000000 00000001
數值結果:-1
~ $a |
Not(按位取反) | 將 $a 中爲 0 的位設爲 1,反之亦然。 |