當前位置:編程學習大全網 - 源碼下載 - 原碼、反碼、補碼、按位取反(~)

原碼、反碼、補碼、按位取反(~)

計算機中,並沒有原碼和反碼,只是使用補碼,代表正負數。

使用補碼的意義:可以把減法或負數,轉換為加法運算。從而簡化計算機的硬件。

------------

比如鐘表,時針轉壹圈,周期是 12 小時。

倒撥 3 小時,可以用正撥 9 小時代替。

9,就稱為-3 的補數。

計算方法:12-3 = 9。

對於分針,倒撥 X 分,就可以用正撥 60-X 代替。

------------

如果,限定了兩位十進制數 (0~99),周期就是 100。

那麽,減壹,就可以用 +99 代替。

24-1 = 23

24 + 99 = (1) 23

忽略進位,只取兩位數,這兩種算法,結果就是相同的。

於是,99 就是 -1 的補數。

其它負數的補數,大家可以自己求!

求出了負數的補數,就可用加法,代替減法了。

------------

計算機中使用二進制,補數,就改稱為補碼。

常用的八位二進制是:0000 0000~1111 1111。

它們代表了十進制:0~255,周期就是 256。

那麽,-1,就可以用 255 = 1111 1111 代替。

所以:-1 的補碼,就是 1111 1111 = 255。

同理:-2 的補碼,就是 1111 1110 = 254。

繼續:-3 的補碼,就是 1111 1101 = 253。

。。。

最後:-128,補碼是 1000 0000 = 128。

計算公式:負數的補碼=256+這個負數。

正數,直接運算即可,不需要求補碼。

 也可以說,正數本身就是補碼。

------------

補碼的應用如: 7-3 = 4。

用補碼的計算過程如下:

7 的補碼=0000 0111

-3的補碼=1111 1101

--相加-------------

 得:  (1) 0000 0100 = 4 的補碼

舍棄進位,只保留八位,作為結果即可。

這就是:使用補碼,加法就代替了減法。

所以,在計算機中,有壹個加法器,就夠用了。

原碼和反碼,都沒有這種功能。

------------

原碼和反碼,毫無用處。計算機中,根本就沒有它們。

  • 上一篇:stl源代碼在哪裏?
  • 下一篇:JAVA和PHP的區別
  • copyright 2024編程學習大全網