鱼C论坛

 找回密码
 立即注册
查看: 2137|回复: 2

关于C++的类型转换问题

[复制链接]
发表于 2019-11-12 19:52:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
现有以下代码:
#include <iostream>
using namespace std;
union fd
{
    float d;
    unsigned char data[4];
}speed;
int main()
{
    speed.d = 1024.00;
    cout << "speed.d:" << speed.d <<endl;
    for(int i=0;i<4;i++)
    {
        //cout << i <<":" <<speed.data[i]<<endl;
        cout << i <<":" <<int(speed.data[i])<<endl;
    }
    return 0;
}
运行结果为:
speed.d:1024
0:0
1:0
2:128
3:68
请问为什么尾数是0呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-11-12 19:58:45 | 显示全部楼层
        说清楚一点,哪个尾数是 0 ?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-12 20:01:02 | 显示全部楼层
理解了
因为是转化成1.xxxxxx*2^n()然后再区分符号位,指数位,尾数位,所以当没有小数位,整数位是类似1000000000这种类型,这尾数位全为0,相当于1.00000*2^n,取0.0000000求二进制小数,所以均为0.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-4 21:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表