十进制浮点数转换成IEEE754标准的32浮点数的二进制格式

发布时间 2023-10-14 17:03:21作者: GisliW

十进制浮点数转换成IEEE754标准的32浮点数的二进制格式

作业答案

5.75:
0100 0000 1011 1000 0000 0000 0000 0000
161.875:
0100 0011 0010 0001 1110 0000 0000 0000
-0.0234375:
1011 1100 1100 0000 0000 0000 0000 0000

前章:十进制浮点数转二进制浮点数

十进制浮点数,如5.75分为整数部分和小数部分:

  • 整数部分:5
  • 小数部分:0.75

分别转化再组合

整数部分

按一般DEC整数转化成BIN
5 / 2 = 2 ··· 1
2 / 2 = 1 ··· 0
1 / 2 = 0 ··· 1
倒序取余数,得:5(d) --> 101(b)

小数部分

与整数不同,采用乘二取整法:
0.75 * 2 = 0.50 + 1
0.50 * 2 = 0.00 + 1
按顺序取整,得到:0.75(d) --> 0.11(b)
注释 为直观表现算法效果,此处采用了不规范的写法0.00,正常情况下应记作0

故:5.75(d) --> 101.11(b)

正文:IEEE754标准下的单精度(32位)浮点数(BIN)

IEEE 754

GPT说:
IEEE 754是一种国际标准,用于定义浮点数的表示和运算规则。它规定了浮点数的位数、指数范围、舍入方式等,为计算机在处理实数运算时提供了一致的规范。
IEEE 754定义了两种浮点数格式:单精度(32位)和双精度(64位)。其中,单精度浮点数用32位表示,包括1个符号位、8个指数位和23个尾数位;双精度浮点数用64位表示,包括1个符号位、11个指数位和52个尾数位。
IEEE 754还规定了特殊值的表示方法,例如正无穷大、负无穷大和NaN(Not a Number)。这些特殊值的存在使得浮点数能够表示各种情况下的运算结果,并能够进行溢出和下溢处理。
在计算机中,使用IEEE 754规范可以确保浮点数的计算具有一致性和可重复性,同时也提供了一定程度的精度控制。然而,由于浮点数的精度有限,可能存在舍入误差和精度损失的问题,因此在一些关键性的计算场景中,需要谨慎处理浮点数运算。

IEEE 754单精度浮点数是一种用32位二进制表示的浮点数格式。它由以下几个部分组成:

  1. 符号位S(1位):用于表示浮点数的正负,0表示正数,1表示负数。

  2. 指数位E(8位):用于表示浮点数的指数部分。通过将实际指数值与一个偏移量进行偏移,来表示指数的范围。例如,偏移量为127,则指数位的取值范围为-126至127。

  3. 尾数位M(23位):用于表示浮点数的尾数部分。尾数位可以理解为小数部分的二进制表示形式。

根据这些位的排列方式,IEEE 754单精度浮点数能够表示大约7位有效数字的浮点数。

转化

  1. 十进制 --> 二进制
    5.75(d)-->101.11(b)

  2. 判断正负,确定符号位
    正,S = 0

  3. 规格化:二进制科学计数法,以确定阶数
    101.11 = 1.0111 * 22 ············ e=2

  4. 指数位E,尾数位M
    E=127+e=129(dec) --> 10000001(bin)
    M取0111并补足23位:01110000000000000000000

S E      M
0 10000001  01110000000000000000000

最终,十进制浮点数5.75转换成IEEE754标准的32浮点数的二进制格式为:
0100 0000 1011 1000 0000 0000 0000 0000