2.1 数据与文字的表示方法
1. 浮点表示法(IEEE754标准)
(1)32位浮点数:
x = (-1)^s * (1.M) *2^(E-127) e=E-127
(2) 64位浮点数:
x = (-1)^s * (1.M) *2^(E-1023) e=E-1023
其中,s:符号位,M:尾数,E:阶码,*:乘。
s = 0:表示正数,s = 1:表示负数。
在用浮点数表示时,如果是转换成二进制,会出现乘法,有个小公式:一个二进制小数乘以2^n = 原始数小数点左移n位(n是正整数)。
2. 数的机器码表示
(1)原码表示法:
正数符号位为 0 ,负数符号位为 1。
原码机器中有+0 和 -0之分,所以,[+1]原码 = 000...000,[-1] = 100...000,第一位为符号位。
(2)补码表示法:
正整数补码=原码。
负整数补码 = 符号位:1 + 数值位取反加1。
(3)移码表示法:
移码通常用于表示浮点数的阶码,移码 = 补码符号位取反。
2.2 定点加法和减法运算
(1)补码加法
[x]补 + [y]补 = [x+y]补 (mod 2^(n+1))
补码的加法运算,符号位一定要参与运算,超过 2^(n+1)的进位要丢掉。补码减法转换为加法运算后也是一样的。
(2)补码减法
[x-y]补 = [x]补 - [y]补 = [x]补 + [-y]补
(3)溢出的检测方法:
双符号位检测:符号位变为两位参与运算。
正数符号位:00,负数符号位:11。
运算结果符号位为 01:表示正溢出/上溢。
运算结果符号位为 10:表示负溢出/下溢。