當前位置:編程學習大全網 - 源碼下載 - 負數的補碼怎麽變回原碼?

負數的補碼怎麽變回原碼?

只需對其各位取反加壹即可得到原碼。

從數學角度回答,假定在32位機器上。

設某負數X,則X+X(反)= 0xFFFFFFFF。

所以X+X(反)+1 = 0,可以得出 0 - X = X(反)+ 1。

這裏 0 - X即定義為負數X的補碼,這樣,計算機在進行X-Y運算時實際可用X+Y(補)代替,硬件角度只需實現加法電路即可。

同樣的道理,0-X(補)=X(補)(反)+1 = X,即已知負數補碼只需對其各位取反加壹即可得到原碼。

補碼的意義

補碼“模”概念的引入、負數補碼的實質、以及補碼和真值之間的關系所揭示的補碼符號位所具有的數學特征,無不體現了補碼在計算機中表示數值型數據的優勢,和原碼、反碼等相比可表現在如下方面:

1、解決了符號的表示的問題。

2、可以將減法運算轉化為補碼的加法運算來實現,克服了原碼加減法運算繁雜的弊端,可有效簡化運算器的設計。

3、在計算機中,利用電子器件的特點實現補碼和真值、原碼之間的相互轉換,非常容易。

4、補碼表示統壹了符號位和數值位,使得符號位可以和數值位壹起直接參與運算,這也為後面設計乘法器除法器等運算器件提供了極大的方便。

總之,補碼概念的引入和當時運算器設計的背景不無關系,從設計者角度,既要考慮表示的數的類型(小數、整數、實數和復數)、數值範圍和精確度,又要考慮數據存儲和處理所需要的硬件代價。因此,使用補碼來表示機器數並得到廣泛的應用,也就不難理解了。

  • 上一篇:虛擬人又來“搶飯碗”了。
  • 下一篇:誰來無限教我?誰的無限公司能做到!KOF97
  • copyright 2024編程學習大全網