如何深刻理解IEEE浮点数的表示(IEEE floating-point representation)

引言

大家都知道,可以在计算机处理器直接运行的是由0,1构成的机器代码(machine code),本文将介绍浮点数(floating-point number )在机器码中是如何被编码表示的
整数(integer)是如何被编码的呢?小伙伴们应该听过补码,原码,反码吧,这些正是整数被编码的不同规则。

原码:一定字长,在不溢出的情况下,最高位是符号位,跟上该整数二进制表示。符号位中0代表正数,1代表负数。
补码(two's compliment):最高位也是符号位,但是与原码不同的是符号位也参与到求值里。
例如:1001=-2^3+1=-7
而原码中 1001=-1

代表同一数值的原码是可以转换成其补码的。

 很多文章里说补码是无法直接转换成十进制数值,要先换成原码再求,其实这是错误的。理解补码最高位也是参与值的即可。

后续笔者将会撰写一篇文章详细讲解原码,补码,以及反码。

下面开始正题吧!

浮点数(floating-point number)是什么

其实计算机表示小数有两种方式:

  1. 定点数 (fixed-point)
  2. 浮点数(floating-point)
    区别在于,定点数编码小数时小数点位置是确定的,浮点数小数点位置是可以变化的。
    如何用科学计数法来表示二进制小数,即形如:
    V = ( − 1 ) s × M × 2 E V=(-1)^s \times M \times 2^E V=(1)s×M×2E
    0.25(d)可以写作
    0.01 ( b ) × 2 0 0.01(b)\times2^0 0.01(b)×20
    也可以写作
    1.0 ( b ) × 2 − 2 1.0(b)\times 2^{-2} 1.0(b)×22
注:括号中的字母
d表示十进制 decimal
b表示二进制 binary
h表示十六进制 hexadecimal

IEEE floating-point representation

正如上文所述,IEEE

  • 10
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值