1.无符号数和有符号数
- 无符号数:指整个机器字长的全部二进制位均为数值位,没有符号位。若机器字长为8位,则数的表示范围 0~28-1 , 即0~255。
- 有符号数:在机器中,数的正负我们无法识别,但是我们可以用二进制数来代替正负号。一般‘0’为正,‘1’为负,符号位一般在有效数的最前面。若机器字长为8位,是有符号数,则数的表示范围为 -27~27-1 ,即-128~127。
2.机器数的定点表示
- 根据小数点的位置是否固定,在计算机中,有两种数据格式:
定点和浮点表示
. 这里介绍定点表示
- 定点表示即约定机器数中小数点位置是固定不变的,小数点不再使用‘.’表示,而是约定它的位置。
- 定点小数:一般将小数点的位置固定在数据的
最高位之前
。 - 定点整数:一般将小数点的位置固定在数据的
最低位之后
。
这里假设机器字长为
n+1
,来分析定点小数
和定点整数
。
(1)定点小数
- 原码数值范围:- (1-2-n) ~ (1-2-n)
- 补码数值范围:- 1 ~ (1-2-n)
- 反码数值范围:- (1-2-n) ~ (1-2-n)
- 范围包含端点值
(2)定点整数
- 原码数值范围:- (2n-1 ) ~ ( 2n-1 )
- 补码数值范围:- 2n ~ (2n-1)
- 反码数值范围:- (2n-1 ) ~ ( 2n-1 )
- 范围包含端点值
3.原码、反码、补码、移码
-
数值位取反加1 = 从最低位往最高位数,遇到第一个1后,这个1本身不变,它左边的除符号位外全部数字取反
-
移码越大真值越大、移码越小真值越小
-
注意:
[+0]原 = 0000 , [-0]原 = 1000
[+0]补 = [-0]补 = 0.000
[+0]反 = 0.000 , [-0]反 = 1.111 -
原码、补码、反码、移码转换规律