摘要:下面是希赛软考学院为大家整理的软考程序员教程知识点精讲之各种码制,希望能帮助学友们。
>>>>>希赛网改版上线5周年庆,感恩钜惠!全场买就减,较高立减500,还有1元秒杀,5折限时抢购,众多“豪”礼等你来享,进入抢购!
下面是希赛软考网为大家整理的软考程序员教程知识点精讲之各种码制,希望能帮助学友们。具体内容如下:
各种码制
本节主要掌握原码、反码、补码和移码的概念,以及各自的用途和优点。
1.原码
将较高位用做符号位(0表示正数,1表示负数),其余各位代表数值本身的绝对值的表示形式。这种方式是最容易理解的。例如,假设用8位表示一个数,则+11的原码是00001011,–11的原码是10001011。
直接使用原码在计算时会有麻烦。例如,(1)10+(–1)10 = 0。如果直接使用原码,则:
(00000001)2+(1000001)2 = (10000010)2
这样计算的结果是–2,也就是说,使用原码直接参与计算可能会出现错误的结果。所以,原码的符号位不能直接参与计算,必须和其他位分开,这样会增加硬件的开销和复杂性。
2.反码
正数的反码与原码相同。负数的反码符号位为1,其余各位为该数绝对值的原码按位取反。例如,–11的反码为11110100。
同样,对上面的加法,使用反码的结果是:
(00000001)2+ (11111110)2 = (11111111)2
结果再转回原码,这样的结果是负0,而在人们普遍的观念中,0是不分正负的。反码的符号位可以直接参与计算,而且减法也可以转换为加法计算。
3.补码
正数的补码与原码相同。负数的补码是该数的反码加1,这个加1就是“补”。例如,–11的补码为11110100+1 = 11110101。
再次做以上的加法,是这样的:
(00000001)2 + (11111111)2 = (00000000)2
这说明,直接使用补码进行计算的结果是正确的。也就是说,补码中0是表示的。
对一个补码表示的数,要计算其原码,只要对它再次求补。由于补码能使符号位与有效值部分一起参加运算,从而简化了运算规则,同时它也使减法运算转换为加法运算,进一步简化计算机中运算器的电路,这使得在大部分计算机系统中,数据都使用补码表示。
4.移码
移码又称为增码,移码的符号表示和补码相反,1表示正数,0表示负数。也就是说,移码是在补码的基础上把首位取反得到的,这样使得移码非常适合于阶码的运算,所以移码常用于表示阶码。
5.数据表示范围
对于原码、反码和补码,假设用n位表示数据(二进制),则各种表示方法的表示范围如表2-3所示。
表2-3 各种码制所表示数的范围

希赛软考网,拥有十四年软考培训经验,希赛网一直坚持自主研发,将丰富的软考培训经验有效融入教程研发过程,自成体系的软考在线题库(软考历年真题)、软考培训教材和软考视频教程,多样的培训方式包括在线辅导、面授、和,使考生的学习更具系统性,辅导更具针对性。采用全程督学机制,,软考平均通过率在全国。
软考不知道考啥科目?扫码测最适合你的报考科目

通关资源:软考各科历年真题 | 各科学习资料汇总 | 在线试题库【点击刷题】
免费课程:系统架构设计师报考指南 | 2026年高项备考指导课及精讲试听
热门活动: 新年新起点,大额满减有惊喜![]()
软考备考资料免费领取
去领取
专注在线职业教育25年