计组 数据的表示形式

数据格式

定点数
XnXn-1...X0,其中Xn为符号位(0是正数,1是负数),Xn-1Xn-2...X0为数值。

  1. 当X = Xn-1...X0表示无符号纯小数时,大小为[0,1-2(-n)]
  2. 当X = Xn-1...X0表示无符号整数时,大小为[0,2n - 1]

浮点数
,其中e为指数,M为尾数

32位浮点数

31(位) 30 - 23(位) 22 - 0(位)
S E M

其中1位的S表示符号位,8位的E表示阶码,23位的M表示尾数
E = e + 127 = e + 27 - 1

64位浮点数

63(位) 62 - 52(位) 51 - 0(位)
S E M

其中1位的S表示符号位,11位的E表示阶码,52位的M表示尾数
E = e + 1023 = e + 210 - 1

所以在IEEE754标准中,浮点数的表达式为
   x = (-1)S * 1.M * 2e

  • 例如:0 (S)1000 0010(E)011 0110 0000 000 0000 0000 (M)
    S = 0
    e = E - 127 = 1000 0010 - 127 = 3
    1.M = 1.011011
    x = (-1)0 * 1.011011*23 = 1011.011 = 11.375

数的机器码表示

原码补码转换
  • 正数:补码等于原码
  • 负数:去掉符号位进行扫描法

补码的作用:将加减法转换为补码的加法

  • 例如:
  1. x + y = [x] + [y] = [x+y]
    因此利用补码相加得到[x+y]补,再利用补码转换为原码得到x + y
  2. x - y = [x]补 + [-y]补 = [x-y]补
    同理利用补码原码相互转换得到 x - y
移码和补码

移码是符号相反的补码。
移码作用:用来表示阶码, [e]移 = E。

[e]移 = 2k + e
e为k+1位的真值,其中k+1位为符号位
举例:
e = -127, 原码1111 1111
e 为 8 位真值,所以 k = 7

注:但是在IEEE中规定偏移常数值不是,而是 。

你可能感兴趣的:(计组 数据的表示形式)