曾经遇到过“字符变数值”的问题,今天在这里总结一下。其实有好多方法,比如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