本笔记主要阐述计算机的原码,反码和补码的概念,以及原码反码补码之间如何相互转换。
原码:
原码(自然二进制码)是一种计算机中对数字的二进制定点表示方法。原码表示法在数值前
面增加了一位符号位(最高位即为符号位):
正数符号位用0表示
负数符号位用1表示
其余位表示数值的大小。
反码:
反码通常是用来由原码求补码 或者 由补码求原码的过度码。
反码在原码的基础上:
正数的反码是其本身
负数的反码是符号位不变,其余位取反。
补码:
正数的补码是其本身
负数的补码是在其反码的基础上+1
补码变成原码的方式:
正数的补码与原码一致
负数的补码按位取反+1,符号位不变
反码变成原码的方式:
正数的反码与原码一致
负数的补码按位取反,符号位不变
总结
对于有符号的而言:
1. 二进制的最高位是符号位:用0表示正数,用1表示负数
2. 正数的原码、反码、补码都一样
3. 0的反码、补码都一样
4. 计算机中不管是正数还是负数,在计算机中是以补码的形式存储的
5. 反码是一种表示形式,取反是一个计算机过程(每一个位置都取反)
6. 负数的补码 = 它的反码 + 1