十进制浮点数转换成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位二进制表示的浮点数格式。它由以下几个部分组成:
-
符号位S(1位):用于表示浮点数的正负,0表示正数,1表示负数。
-
指数位E(8位):用于表示浮点数的指数部分。通过将实际指数值与一个偏移量进行偏移,来表示指数的范围。例如,偏移量为127,则指数位的取值范围为-126至127。
-
尾数位M(23位):用于表示浮点数的尾数部分。尾数位可以理解为小数部分的二进制表示形式。
根据这些位的排列方式,IEEE 754单精度浮点数能够表示大约7位有效数字的浮点数。
转化
-
十进制 --> 二进制
5.75(d)-->101.11(b) -
判断正负,确定符号位
正,S = 0 -
规格化:二进制科学计数法,以确定阶数
101.11 = 1.0111 * 22 ············ e=2 -
指数位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