当前位置:首页>维修大全>综合>

c语言 浮点数怎么变成16进制(c语言如何输入浮点数)

c语言 浮点数怎么变成16进制(c语言如何输入浮点数)

更新时间:2025-10-27 00:10:37

c语言 浮点数怎么变成16进制

首先 浮点数2.5写成二进制应该为10.1(其中整数部分10b=2d, 小数部分0.1*2=1所以0.1b为0.5d)。

然后要把10.1规格化(写成1.xxxx * 2^n的形式,有点像科学计数法)得到1.01*2^1(其中2^1中的1为阶码, 1.01为有效数字)

加上2.5为正数,这就得到三部分信息:

1. 有效数字为1.01.

2. 阶码为1.

3. 符点数为正数

而c/c++的float类型结构为:

1. 最低的23位记录规格化小数中的有效数字(但是不保存最前面的1)

2. 之后的8位记录阶码(上面的阶码转换到这里要+127)

3. 最高的一位表示正负数(0为正数,1为负数)

最终得到的二进制数为:

高位 低位

0 10000000 01000000000000000000000

整理得:

0100 0000 0010 0000 0000 0000 0000 0000

转到16进制得:

40200000

注意:0 无穷大 在符点数里比较特殊另外处理(我也不太明白-_-!)

更多栏目