
【计】 base-minus-one's complement
在计算机科学和数字电路领域,反码(Ones' Complement) 是一种二进制数的表示方法,主要用于数值的存储、运算和错误检测。以下是其详细解释:
反码指对二进制数的每一位取逻辑反(即0变1,1变0)后得到的编码形式。例如:
5
的4位二进制原码为 0101
,其反码为 1010
。-5
的反码为 1010
(基于4位表示)。零的表示
反码系统中存在两种零的表示形式:
+0
:全0(如 0000
)-0
:全1(如 1111
)
这一特性可能导致运算歧义。
加减法运算
反码加减法依赖循环进位(End-Around Carry):
示例(4位):
$$5 + (-3) = 0101_2 + 1100_2 = 1 0001_2 xrightarrow{text{+1}} 00102 = 2{10}$$。
溢出处理
当运算结果超出表示范围时,反码系统可能产生错误值(如 -0
),需额外检测。
历史计算机系统
早期计算机(如PDP-1)采用反码进行算术运算,但因零的冗余和硬件实现复杂度,逐渐被补码取代。
校验机制
反码求和广泛用于网络协议(如IP、TCP、UDP)的校验和计算:
公式:
$$text{Checksum} = text{Ones' Complement}left(sum_{i=1}^{n} text{data}_iright)$$
中文术语 | 英文术语 |
---|---|
反码 | Ones' Complement |
原码 | Sign-Magnitude |
补码 | Two's Complement |
循环进位 | End-Around Carry |
《计算机组成与设计:硬件/软件接口》(David A. Patterson, John L. Hennessy)
详解反码运算原理及硬件实现。
IEEE标准754
对比反码与补码在浮点数表示中的差异。
RFC 1071: Computing the Internet Checksum
定义反码求和在网络校验中的应用。
《数字逻辑基础》(M. Morris Mano)
分析反码在数字系统中的算术缺陷。
反码(Ones' Complement)是计算机中表示有符号整数的一种二进制编码方式,主要用于简化减法运算。以下是详细解释:
0011
。1011
,反码为1100
。0101
→ 反码0101
。1101
→ 反码1010
。1100
→ 补码1101
。3 - 2
可转换为 3 + (-2的反码)
。反码的数学表达式为: $$ text{反码} = begin{cases} x & text{若 } x geq 0 (2^n - 1) + x & text{若 } x < 0 end{cases} $$ 其中,n为二进制位数。
反码是理解补码的重要基础,虽然现代计算机普遍使用补码,但反码在特定领域(如网络协议)仍有价值。
安全等级半直接导程巴斯德氏菌族苄基联苯不导电体存储累加器弹性硬蛋白广义软件设计冠状物裹入气婚前的授产货币汇兑管制火蝇属鉴别器甲状腺制剂疗法记录描述精悍的抗蛋白酶慢性肥大变形性骨软化莫尔胜利时效授意数位资料记录器坦率地桃叶珊瑚甙兔肠球孢子虫吞吐率维里系数尾随者