原碼反碼補碼的相互轉換


  首先,正數的原碼,反碼,補碼都是相同的

  所以,這里討論負數的原碼,反碼,補碼的相互轉化問題。

 1.  負數原碼和反碼的相互轉化

  負數原碼轉化為反碼:符號位不變,數值位按位取反。

  如:

原碼 1100 0010
反碼 1011 1101

  負數反碼轉化為原碼:符號位不變,數值位按位取反。

反碼 1011 1101
原碼 1100 0010

 2.  負數原碼和補碼的相互轉化

  負數原碼轉化為補碼:符號位不變,數值位按位取反,末尾加一。

原碼 1100 0010
反碼 1011 1101 //符號位不變,數值位按位取反
補碼 1011 1110 //末尾加1

  負數補碼轉化為原碼:符號位不變,數值位按位取反,末尾加1。

補碼 1011 1110
       1100 0001 //符號位不變,數值位按位取反
原碼 1100 0010 //末尾加1

 3.負數反碼和補碼的相互轉化

  負數反碼轉化為補碼:末尾加1。

反碼 1011 1101
補碼 1011 1110

  負數補碼轉化為反碼:末尾減1(注意,此處的反碼是指原碼的反碼)。

補碼         1011 1110
原碼的反碼   1011 1101
//減法 借位        

 4.總結

  正數的原碼、反碼和補碼都相同。

  負數原碼和反碼的相互轉換:符號位不變,數值位按位取反。

  負數原碼和補碼的相互轉換:符號位不變,數值位按位取反,末位再加1。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM