用二进制对数字进行编码是计算机科学的基础,主要涉及原码、反码和补码三种表示方法。以下是具体说明:
一、原码(True Form)
定义 原码是符号位与数值位直接组合的编码方式,符号位为最高位(0表示正数,1表示负数),其余位表示数值的绝对值。
示例
- 正数:+101011 → [X]原 = 0101011
- 负数:-101011 → [X]原 = 10101011(补全零)
二、反码(One's Complement)
定义
反码是对原码的数值位取反(0变1,1变0),符号位保持不变。
示例
- 正数:+101011 → [X]反 = 0101010
- 负数:-101011 → [X]反 = 1010100(符号位不变,数值位取反)
三、补码(Two's Complement)
定义
补码在反码基础上加1,符号位保持不变。补码的设计使得加法运算统一为加法操作,简化了计算机运算。
示例
- 正数:+101011 → [X]补 = 0101011
- 负数:-101011 → [X]补 = 1010100 + 1 = 1010101(补码)
四、编码规则与范围
8位二进制数
表示范围:-128 ≤ X ≤ 127
签名位(符号位):D7(最高位)为符号位,其余D0-D6表示数值
无符号数
0-255,直接用二进制表示,无需符号位
五、编码优势
运算简化: 补码使得加法运算统一,无需单独处理负数 效率提升
六、扩展说明
位数扩展:n位二进制数可表示范围为-2^(n-1)到2^(n-1)-1(如16位:-32768到32767)
实际应用:现代计算机普遍采用补码表示法,但无符号数在内存中仍广泛使用
通过以上方法,二进制编码能够高效地表示正负数,并简化计算机中的算术运算。