在計算機中以二進制的形式保存的數就是機器數。在機器數中首位是表示正負號的。0:正數,1:負數。
機器數表示的真正數就是真值。如:00000001=+1
,10000001=-1
編碼
原碼:符號位+真值的絕對值。
反碼:非負數,自己。spa
負數,符號位不變,其他各們取反。
補碼:非負數,自己。code
負數,符號位不變,其他各位取反,+1.即原碼的反碼加1.
在cpu中把減法轉換爲加法。圖片
1 - 1 = 1 + (-1) = [00000001]原 + [10000001]原 = [00000001]反 + [11111110]反 = [11111111]反 = [10000000]原 = -0 // 這種表示方法不對。0不該該有正負。 // 正確過程 1 - 1 = 1 + (-1) = [00000001]原 + [10000001]原 = [00000001]補 + [11111111]補 = [00000000]補 = [00000000]原 = 0 1 - 2 = 1 + (-2) = [00000001]原 + [10000010]原 = [00000001]補 + [11111110]補 = [11111111]補 = [11111110]反 = [10000001]原 = -1