一.机器数与真值
1.机器数:一个数在计算机中的二进制表现形式
带正负号,用一个数的最高位存放,正为0/负为1
+3=(00000011)B
-3=(10000011)B
2.真值:带符号位的机器数对应的真正数值称为机器数的真值
(0000 0011)B的真值=(+000 0001)B=+3
(1000 0011)B的真值=(-000 0001)B=-3
二.原码/反码/移码/补码
1.都是有符号的二进制数,由符号位和数值位构成
2.原码:
符号位加上真值的绝对值,即用第一位表示符号,其余位表示值
+1=[0000 0001]原
-1=[1000 0001]原
问题:①存在加减乘除4种运算 ②符号位不参与运算,运算复杂 ③0的表示不唯一
8位2进制数表示范围为[1111 1111,0111 1111]=[-27+1,27-1]
3.反码:
- 又称增码或偏置码
正数的反码是其本身;负数的反码是在原码的基础上,符号位不变,其余各位取反
+1=[0000 0001]原=[0000 0001]反
-1=[1000 0001]原=[1111 1110]反
4.移码:
表示1个浮点数时需要给出指数,这个指数用整数形式表示,这个整数就叫阶码
阶码指明了小数点在数据中的位置
移码用于表示浮点数的阶码的存储
移码的表示形式与补码相似,只是符号位用"1"表示正,用"0"表示负,数值部分与补码相同
在移码中,0的唯一表示方式是[1000 0000]移,[0000 0000]移 不表示0
5.补码:
正数的补码是其本身;负数的补码是其反码+1
+1=[0000 0001]原=[0000 0001]反=[0000 0001]补
-1=[1000 0001]原=[1111 1110]反=[1111 1111]补
两补码相加,如最高位有进位,则舍弃进位
作用:使符号位参与运算且只保留加法,从而简化计算机运算
6.计算机系统中,数值统一用补码存储(可将符号位和其他位统一处理;减法可按加法处理)
+1=+[0000 0001]补
-1=+[1111 1111]补->类似于[0000 0000]原-[0000 0001]原