當前位置:編程學習大全網 - 源碼下載 - 壹個正數的補碼跟壹個負數的補碼相加的進位問題搞不清楚有規律嗎

壹個正數的補碼跟壹個負數的補碼相加的進位問題搞不清楚有規律嗎

補碼經過運算,出現的進位,是必須舍棄的。

壹個補碼,必須取“約定的位數”,常用有八位、16 位數。。。

運算後,進位是 1 是 0,都不在“約定位數”中,所以是無用的。

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

在計算機中,借助於補碼,那麽,負數和減法,都可以轉化成加法來進行運算。

使用這種方法的目的就是:簡化計算機的硬件。

在計算機中,只有補碼,並沒有原碼和反碼。

補碼和負數,有壹壹對應的關系,可以直接轉換,並不需要通過原碼反碼。

那麽,“原碼反碼取反加壹”這些,都是垃圾知識,都是無用的。

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

計算機中所能計算的位數,是固定的,如八位機、16、32、64 位機。

位數限定之後,減去某個數,就可以用加上其補數,來完成。

如在兩位十進制中,減壹,就可以用 +99 代替。

 25 - 1 = 24

 25 + 99 = (壹百) 24

舍棄進位壹百,只取兩位,這兩個算法,結果就是相同的。

壹百,就是兩位十進制的計數周期:10^2。

99,就是-1 的補數。 求解公式: 補數 = 周期+負數。

上過中學的同學,都知道,三角函數的周期是:2π。

在-π/2 的函數值,與 +3π/2 ( =2π-π/2 ) 處相同。

那麽,-π/2,就可以用?+3π/2 來代替。

懂了這些,也就懂了補碼。

補碼,原理很簡單!扯出原碼反碼,只能說是故弄玄虛而已。

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

計算機用二進制,補數,就改稱:補碼。

八位二進制是 0000 0000 ~ 1111 1111(十進制255)。

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

那麽,[-1]補 = 256-1 = 255 = 1111 1111(二進制)。

如用“原碼反碼取反加壹”來做,也是這個結果。

求負數八位補碼的通用計算公式: 補碼 = 256 + 負數。

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

在八位補碼中,用 128~255 代表 128 個負數-128~-1。

而 0~127,這就是本來的正數,不需要任何轉換。

有人說“正數的原碼反碼補碼,都相同”,其實,這是誤導。

正數,其補碼都不存在,更別說計算機中不存在的原碼反碼了。

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

借助於補碼,負數和減法,都可以轉化成加法來進行運算。

那麽,計算機的硬件,就可以簡化了。

因此,計算機只有加法器,並沒有減法器。

  • 上一篇:象棋源代碼可以贏也可以輸。
  • 下一篇:請教用html的li標簽如何做到商品展示,例如京東的商品展示是用的li標簽,壹排顯示4個,循環很多排?
  • copyright 2024編程學習大全網