>>>>>>【希赛】2016年下半年软考分数早知道,希赛网解析真题
下面是希赛软考网为大家推荐的软考网络管理员备考知识点精讲之数值的编码表示,希望能帮助学友们。
数值的编码表示
本节主要要求掌握原码、反码、补码和移码的概念和特点。
1.原码
原码表示法是在数值前面增加了一位符号位(即较高位为符号位),该位为0时表示正数,为1时则表示负数,其余各位表示数值的大小。这种方式简单直观,也是最容易理解的。
例如:假设用8位表示一个数字,则+11的原码是00001011,-11的原码是10001011.其缺点就是原码直接参加运算可能会出现错误的结果。例如:(1)10+(-1)10 = 0.如果直接使用原码,则:(00000001)2+(10000001)2 = (10000010)2,这样计算的结果是-2,显然出错了。所以,原码的符号位不能直接参与计算,必须和其他位分开,这样会增加硬件的开销和复杂性。
2.反码
反码表示法和原码表示法一样是在数值前面增加了一位符号位(即较高位为符号位),正数的反码与原码相同,负数的反码符号位为1,其余各位为该数绝对值的原码按位取反。
例如:+11的反码是00001011,-11的反码为11110100.
同样对于(1)10+(-1)10 = 0,如果使用反码,则:(00000001)2+ (11111110)2 = (11111111)2,结果为负0,而在人们的观念中,0是不分正负的。反码的符号位可以直接参与计算,而且减法也可以转换为加法运算。注意:用反码进行两数相加时,若较高位有进位,还必须把该进位值加到结果的最低位,才能得到真正的结果,这一操作通称 "循环进位".
3.补码
补码表示法和原码表示法一样是在数值前面增加了一位符号位(即较高位为符号位),正数的补码与原码相同,负数的补码是该数的反码加1,这个加1就是"补".
例如:+11的补码是00001011,-11的补码为11110101.
同样对于(1)10+(-1)10 = 0,如果使用补码,则:(00000001)2 + (11111111)2 = (00000000)2,直接使用补码计算的结果是正确的。也就是说,补码中0是表示的。
在大部分的计算机系统中,数据都使用补码表示,因为采用补码能使符号位与有效值部分一起参加运算,从而简化了运算规则,同时它也使减法运算转换为加法运算,硬件电路只需要设计加法器。
4.移码
移码又称为增码,一般用来表示浮点数的阶码,其定义为:[X]移=2n+X (-2n≤X≤2n)
移码的符号表示和补码相反,1表示正数,0表示负数。
5.数据的表示范围
对于原码、反码和补码,假设用n位表示数据(二进制),则各种表示方法的表示范围如表1-1所示。
表1-1 各种码制所表示数的范围
希赛软考网,拥有十四年软考培训经验,希赛网一直坚持自主研发,将丰富的软考培训经验有效融入教程研发过程,自成体系的软考在线题库(软考历年真题)、软考培训教材和软考视频教程,多样的培训方式包括面授、和,使考生的学习更具系统性,辅导更具针对性。采用全程督学机制,,软考平均通过率在全国。