1、
原碼:將符號位數位化了的數,其中「+」用0
表示,「-」用
1表示。
反碼:正數的反碼表示與原碼表示一樣;負數的反碼表示是原碼表示的符號位不變,數值位逐位取反。
補碼:正數的補碼表示與原碼表示一樣;負數的補碼表示是原碼表示的符號位不變,數值位逐位取反後最低位加1(反碼表示最低位加1)。
例:(假如以八位二進位制表示)
[+63] 原
=0011 1111
反=0011 1111
補=0011 1111
[-63] 原
=1011 1111
反=1100 0000
補=1100 0001
2、負數的位操作(以與為例)
(1)計算機中,無論正數還是負數,都是以其補碼形式儲存的;
(2)如果位操作後的結果最高位為「1」,說明它是負數的補碼,轉化為實際的整數時要逆操作,即-1(減一)後保持最高位不變再取反。
(3)乙個數(如b)的相反數(-b)的補碼,等於該數的補碼取反,然後加1。
比如:-5 原碼=1000 0101 反碼=1111 1010 補碼=1111 1011
5 原碼=0000 0101 反碼=0000 0101 補碼=0000 0101
可以進一步發現,-5 & 5 = 0000 0001,同理 -6 & 6 = 0000 0010,-7 & 7 =0000 0001……
這是乙個很有用的性質,即返回(某個數的絕對值,如-6的絕對值是6)的(二進位制表示的,6的二進位制表示是0000 0110)從右往左第乙個為1(第一位為1)的所表示的整數(0000 0010)。
原碼 反碼 補碼以及負數的表示
原碼 將乙個整數,轉換成二進位制,就是其原碼。如單位元組的5的原碼為 0000 0101 5的原碼為1000 0101。反碼 正數的反碼就是其原碼 負數的反碼是將原碼中,除符號位以外,每一位取反。如單位元組的5的反碼為 0000 0101 5的反碼為1111 1010。補碼 正數的補碼就是其原碼 負...
原碼 補碼 反碼以及位運算
2 位運算 機器數是乙個數在計算機中的二進位制表示形式,機器數是帶符號的,在計算機中用乙個數的最高位 第一位 存放符號,正數為0,負數為1。例如1 帶符號即 1 在計算機中的最終表示形式為 0000 0001,依此類推 1的二進位制為 1000 0001。這種表示方式又叫做原碼,其中0的原碼為000...
原碼 反碼 補碼 負數的移位
正數的原碼 反碼 補碼都相同 負數的反碼為原碼除符號位,其他位都取反,補碼為反碼加1。正數的移位 5為例,左 右移兩位 0000 0101 左移m位 最左邊的m位將丟棄,同時在最右邊補上零 0001 0100 右移m位 最右邊的m位將丟棄,同時在最左邊補上零 0000 0001 負數的移位 由於存在...