通过联合体将字符变量转为整型或浮点型变量

曾经遇到过“字符变数值”的问题,今天在这里总结一下。其实有好多方法,比如c++中的流文件,或atoi/atof函数。偶然的机会接触到联合体,因为所有变量共用相同地址(大小由最大的类型决定),因此就可以实现类型间的转换。int型占4字节,double型占8字节,字符型要看具体大小,例子如下所示union U{ char s[8]; int d; double b;};字符...
摘要由CSDN通过智能技术生成

曾经遇到过“字符变数值”的问题,今天在这里总结一下。其实有好多方法,比如c++中的流文件,或atoi/atof函数。偶然的机会接触到联合体,因为所有变量共用相同地址(大小由最大的类型决定),因此就可以实现类型间的转换。

int型占4字节,double型占8字节,字符型要看具体大小,例子如下所示

union U
{
    char s[8];
    int d;
    double b;
};

字符占8字节,int型占4字节,double型占8字节,因此联合体共占8字节。其中int型占低地址的4个字节。

其中double类型的存储格式需要了解

符号(1位) 指数(11位) 尾数(52位)

指数位要加上0x3ff

例如:4.75                  转换二进制为100.11 = 1.0011e(2)

指数存为 2 + 0x3f

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值