首先,正數的原碼,反碼,補碼都是相同的。code
因此,這裏討論負數的原碼,反碼,補碼的相互轉化問題。blog
負數原碼轉化爲反碼:符號位不變,數值位按位取反。class
如:總結
原碼 1100 0010 反碼 1011 1101
負數反碼轉化爲原碼:符號位不變,數值位按位取反。di
反碼 1011 1101 原碼 1100 0010
負數原碼轉化爲補碼:符號位不變,數值位按位取反,末尾加一。co
原碼 1100 0010 反碼 1011 1101 //符號位不變,數值位按位取反 補碼 1011 1110 //末尾加1
負數補碼轉化爲原碼:符號位不變,數值位按位取反,末尾加1。
補碼 1011 1110 1100 0001 //符號位不變,數值位按位取反 原碼 1100 0010 //末尾加1
負數反碼轉化爲補碼:末尾加1。
反碼 1011 1101 補碼 1011 1110
負數補碼轉化爲反碼:末尾減1(注意,此處的反碼是指原碼的反碼)。
補碼 1011 1110 原碼的反碼 1011 1101 //減法 借位
正數的原碼、反碼和補碼都相同。
負數原碼和反碼的相互轉換:符號位不變,數值位按位取反。
負數原碼和補碼的相互轉換:符號位不變,數值位按位取反,末位再加1。