当前位置:首页 > 科技动态 > 正文

为什么补码表示范围

为什么补码表示范围

为什么用二进制补码表示数值范围比原码多一个呢? 1、^7=128(因为有一位是符号为,所以由7位是数值位),但是机器中是从0开始表示的,所以:正数是从 +0 ~ +12...

为什么用二进制补码表示数值范围比原码多一个呢?

1、^7=128(因为有一位是符号为,所以由7位是数值位),但是机器中是从0开始表示的,所以:正数是从 +0 ~ +127,刚好128个数字。负数是从 -0 ~ -127,刚好128个数字。但是补码中 +0 = -0 ,所以,-0这个位置可以空出来,因此就在负数的区域中多出一位,因此就把这一位进行平移,由原来的 -0~-127,变成 -1~-128,也还是128位。

2、可见用补码可以表示多一位-2,而原码不能表示-2。所以总的来说补码比原码多了一个最低位。

3、为什么补码表示会比原码表示多表示一个数,因为在原码表示中,0的表示不唯一,有+0和-0两种表示,而在补码和移码中0的表示都是唯一的,不管是+0还是-0都是一种表示形式,这就导致补码可以比原码多表示一个数。

4、补码表示的数的个数,是正确的。原码表示的数的个数,是少一个的。原码中,零分成正零、负零,占了两个数的位置,所以原码表示的数字,就少了一个。-1的补码(假设字长为8位)是:1111 1111。

5、不同之处在最小值。补码比原码,多表示一个数。为什么?因为,在定义原码和反码时,喝的有点高。于是,就给一个零,添上了两种符号位!你也知道,零,既不是正数也不是负数。

补码数的表示范围与原码有何不同?为什么?

n 位原码的表示范围是:-2^(n-1) x +2^(n-1)。n 位补码的表示范围是:-2^(n-1) ≤ x +2^(n-1)。不同之处在最小值。补码比原码,多表示一个数。为什么?因为,在定义原码和反码时,喝的有点高。于是,就给一个零,添上了两种符号位!你也知道,零,既不是正数也不是负数。

补码数的表示范围与原码有所不同,主要体现在负数的表示上。以下是具体的不同点:8位字长有符号整数:原码范围:原码使用最高位作为符号位,0表示正数,1表示负数。其余7位表示数值。因此,原码能表示的最大正数为01111111b,最小负数为11111111b。

补码范围:1000 0000b~0111 1111b 对应的真值范围:-1000 0000b~+111 1111b, 即 -128d~ +127d .以8位字长定点有符号小数为例:[x]原 = 0.000 0000b 最高位的0是符号位表示正,此时为“正零”;[x]原 = 000 0000b 最高位的1是符号位表示负,此时为“负零”。

最新文章