您的位置:首页 > 理论基础

计算机组成 数制

2016-03-28 19:43 211 查看
1.4.1 二进制数的真值和字长

前面说了,负数是通过其正数的补码形式来表示的,那什么是补码呢?这还得从原码、反码说起。在计算机二进制数中其实也包括符号位,并不是所有位都代表数据本身,就像我们常用的十进制数中有正、有负一样。但是二进制中没有“-”这个符号,那么计算机中的机器数的符号是怎样规定的呢?这得从机器数的两个基本概念(真值和字长)说起。

(1)真值

计算机中的二进制机器数分为“有符号数”和“无符号数”两种。“无符号数”就是二进制数的每一位都代表对应位的数值;而在“有符号数”中规定最高位用来表示数据符号,其中1代表负,0代表正,这样一来机器数本身就不等于真正的数值了。例如有符号数10000101,其最高位1代表负,所以余下的“0000101”才是数值本身,所以其真正数值是-5,而如果是无符号数,则10000101所代表的是133。为区别起见,把带符号位的机器数所对应的真正数值称为机器数的“真值”。例:00100001的真值 = 0 0100001 = +33(正号可以不写,可以直接写成33),10100011的真值
= 1 0100011 = -35。

(2) 字长

在机器数中还有一个概念需要首先弄明白,那就是“字长”。“字长”是指计算机一次可处理的二进制数的码位长度,是计算机进行数据存储和数据处理的运算单位。如我们通常所指的32位处理器,就是指该处理器的字长为32位,也就是一次能处理32位二进制数。通常称16位是一个字,32位是一个双字,64位是两个双字。

数值的转换结果是与字长有关的。如果计算机字长为8位,十进制中的数+5转换成二进制就是00000101,-5转换成二进制就是10000101;但如果字长是16位,+5转换的结果就是00000000 00000101,而-5 转换成二进制就是10000000 00000101了。也就是对应的机器数要转换为字长所代表的位数。

字长越长代表计算机的处理能力越强,可以处理的数越大。如现在字长普遍是64位的了,这样一来计算机可以处理的二进制数码位长度最大为64位,去掉符号位,则表示计算机可以处理的最大二进制数为2的63次方,最小二进制数就是-2的63次方。而在8位字长中,因为最高位要用于符号位,所以实际可以处理的数值大小范围为-127~-0~0~127(即27-1),共256个数了;但如果字长是16位,可以处理的数值大小就可以是-32677~-0~0~32767(215-1)。

注意 以上的“-0”与“0”的机器数是不一样的,在8位字长中,-0为1 0000000,而+0为0 0000000;在16位字长中,-0为1 0000000 00000000,而+0为0 0000000 00000000。所以在二进制的机器数中,0也有两个(-0和0),且表示形式并不一样。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: