float 类型在内存中的结构

在32位系统中,float类型占用4字节,由1位符号位、8位指数位和23位尾数位组成。指数部分需要加上127以表示2的次方。例如,10.5的float表示为0x41280000,其中0是符号位,10000010是指数位(130),0101 0000 0000 0000 0000 000是尾数部分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

float 在32位机上是 4个字节的。

它的结构是这样子的:

1位符号位 |  8 位指数位  |  23尾数位 

其中指数是指以2 为底的指数, 因为指数可能为负数,比如十进制小数0.025,就是二进制小数0.001 (0*1/2 + 0*1/4 +1*1/8),  相当于1 *2 的-3次方。

所以规定指数位要加上127.


eg: float f=10.5;

f是正数,所以符号为是0, 10.5 相当于二进制的 1010.1 即 1.0101 *exp(2,3).  所以指数部分为 127+3=130.

尾数部分为0101 (二进制1.0101的尾数部分)。

所以10.5的二进制形式为     | 0 | 10000010 | 0101 0000 0000 0000 0000 000

                                        符号     指数                           尾数

换算成十六进制的数为  0x41280000


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值