當前位置:編程學習大全網 - 編程語言 - 二進制反碼,補碼,原碼的概念以及表示法

二進制反碼,補碼,原碼的概念以及表示法

補碼、原碼、反碼,這些都是計算機專家編造的詞匯。

事實上,它們,都不應該存在。

計算機的運算,是很簡單的,和這些詞匯,並沒有任何關系。

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

妳想象壹下:

  有壹個小朋友,很小的,大概是三歲吧。

  他只會數壹百個數(0~99),會加法,還不會做減法。

那麽,妳可以這樣教他:加 99,就是減壹。

比如: 25 - 1 = 24

25 + 99 = (壹百) 24

讓他只取 2 位數,忽略進位,結果,就是正確的。

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

上面是壹個簡單的例子,卻說明了壹個事實:

  做計算時,限定了位數,正數,就能當做負數使用。

限定了位數,有兩個意義:

  數值是循環的,具有周期性;

  有沒有進位,都不必考慮。

代替負數的正數,怎麽求呢?

公式,妳壹定能看出來: 正數 = 負數 + 周期。

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

在計算機中,8 位 2 進制,稱為壹個字節。

計數值範圍是:0000 0000~1111 1111。

對應的十進制:0 ~ 255。

計數周期,是:2^8 = 256。

這裏,***有 256 個機器數。

較大的128 個,就可以代表負數了:

 -1 補碼就是:-1 + 256 = 255 = 1111 1111。

 -2 的補碼 = 254 = 1111 1110 (二進制)。

 。。。

 -128 的補碼 = 128 = 1000 0000 (二進制)。

較小的 128 個,就代表自身的數值了:0 ~ 127。

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

減法算式: 5 - 7 = -2, 用 8 位補碼計算如下:

  5 = 0000 0101

 -7 的補碼 = 1111 1001

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

得: (0)? 1111 1101? = -2 的補碼

在這裏,用加法代替減法,略去進位,結果,就完全正確。

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

用正數(補碼)代替了負數,減法運算也就沒有了。

因此,計算機的硬件,就可以得到簡化了。

所以,在計算機系統中,負數,壹律采用補碼表示和存儲。

原碼和反碼,在計算機中,根本就不能用。

事實上,它們,根本就不存在。

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

什麽是補碼? 為什麽要用補碼?

看完上面的介紹,相信妳都有了答案。

那麽,原碼和反碼,就沒有任何意義了。

這兩種代碼,只是用來求補碼的過渡而已。

其實,原碼和反碼,還有“取反加壹”,都是“雞肋”。

浪費不少時間學習這些,卻不能理解補碼的意義何在。

況且,用“取反加壹”求 0 和-128 的補碼,就是難事。

 -128,它沒有原碼和反碼,拿什麽取反加壹?

 -0 的補碼,求出來是 0000 0000。

   符號位,居然是 0 !

   難道,負零,是正數嗎?

 有人說,零,不分正負,所有只有壹個補碼。

 那麽,原碼反碼中,為什麽有兩個零?

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

其實,原碼反碼符號位取反加壹,就是壹大篇自相矛盾的謬論。

小學生都弄懂的事,他們竟然弄出這許多騷操作!

老外數學不好,由此可見壹斑。

  • 上一篇:當初那個交不上作業,黑掉學校網址的最牛“小黑客”,後來怎樣?
  • 下一篇:國家對機器人產業健康發展出臺了哪些政策?
  • copyright 2024編程學習大全網