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

计算机中数的表示

2016-03-11 22:30 190 查看
计算机中的数及其符号都用二进制表示,称为机器数。一般用最高有效位表示数的符号,0表示正数,1表示负数

机器数可以用不同的码制来表示,常用的有原码、反码和补码,大多数机器采用补码表示,如80x86。

正数的原码、反码和补码都一样

负数的补码表示要经过三个步骤:
先写出与负数对应的正数的原码,然后按位求反,最后末位加一。如下所示:

机器字长为16位,写出N=-117D的补码表示:
1、[117]原­ =
0000 0000 0111 0101
2、按位求反:1111 1111 1000 1010

3、末位加一:1111
1111 1000 1011

符号扩展
:一个数从位数较少扩展到位数较多。对于用补码表示的数,正数的符号扩展应该在前面补0,而负数的符号扩展则应该在前面补1。
机器字长8位:
[+46]补=0010
1110 [-46]补=11010010
扩展到16位:
[+46]补=0000
0000 0010 1110

[-46]补=1111
1111 1101 0010

N位补码数的表数范围:

首先明确一点,0的补码表示是唯一的:-0的补码=11111111+1=00000000

一个数的补码表示有两种,符号位为0或符号位为1,因为0的补码表示唯一(0既不是正数也不是负数,0和正数合称非负数),它占了符号位为0所能表达的数的范围一个位置,所以正数的最大值比负数绝对值的最大值小1
。举个例子,用3位来表示有符号数:

补码:100
101 110 111 000 001
010 011

十进制:-4
-3 -2 -1 0 1
2 3

在某些情况下,要处理的数全是正数,此时再保留符号位就没有意义了,我们可以把最高有效位也作为数值处理,这样的数称为无符号整数。计算机中最常用的无符号整数是表示地址的数。

小结,N位补码数表示的数的范围为,带符号数:-2n-1
~ 2n-1-1,无符号数:0~2n-1。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: