随笔3——原补反码

计算机里存储有符号整数,不靠正负号文字,而是用最高位当符号位:0 代表正数,1 代表负数,原码、反码、补码就是三种编码方式。

原码最直观,符号位 + 数值本身。比如 8 位中,+3 是00000011,-3 是10000011。但原码有明显缺陷:0 会有两种表示00000000和10000000;并且直接用原码做减法运算很麻烦,硬件不好实现。

反码算是过渡。正数反码等于原码;负数反码,符号位不变,数值位全部取反。-3 的反码就是11111100。反码依旧存在正负 0 两个编码,减法问题只是缓解,没有根本解决。

补码才是计算机实际使用的编码。正数补码 = 原码;负数补码 = 它的反码 + 1。-3 补码就是11111101
补码的妙处:减法可以直接转化为加负数的补码,只用一套加法电路就能完成加减运算,简化硬件。同时 0 只有唯一表示,还能多存一个负数(8 位补码范围:-128~127)。

简单记:正数三码相同;负数原码看符号,反码位取反,补码反码加一。

posted @ 2026-09-24 21:14  gcdoublebest  阅读(6)  评论(0)    收藏  举报