浮点数和整数之间的转换

当一个整数int i = 12345被强制转换为一个FLOAT型变量

float f = (float)i;

假设sizeof(int)=32,float为单精度,sizeof(float)=32

那么i = 12345(十进制)=00000000000000000011000000111001

对于十进制12345,可以表示成1.2345 乘以10的4次方

同理,对于二进制层面

11000000111001可以表示诚1.10000001110011乘以2的13次方

即1.1000000111001<<13

那么1000000111001即为1.1000000111001的小数部分

根据单精度浮点数的定义

阶码为8位,尾数(即小数部分为23位)

设阶码为e,则e-127=13,,e=140,二进制表示为10001100

尾数部分1000000111001,

浮点数=符号(1)阶码(8)尾数(23)

因此

12345转换为浮点数后为

0 10001100 1000000111001 0000000000

对比整数时的二进制表示

                    1 1000000111001

可以看到尾数部分就是整数部分最高数字位后的其他部分

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值