首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于reinterpret_cast的有关问题

2013-11-12 
关于reinterpret_cast的问题我现在想把1/6的结果在内存中保存的位模式用16进制或者2进制输出来,根据Thinki

关于reinterpret_cast的问题
我现在想把1/6的结果在内存中保存的位模式用16进制或者2进制输出来,根据Thinking in C++的介绍,我写了个程序……

ps. 刚学c++,如果有各种小白问题见谅~~

#include <iostream>

using namespace std;

int main()
{
    double dNum;
    long lNum;
    dNum = 0.0;
    lNum = reinterpret_cast<long>(lNum);
    cout.setf(ios::hex);
    cout << lNum << endl;
    return 0;
}

[解决办法]
1. r_cast不能cast浮点。你想要这么做,只能*r_cast<long*>(&dNum),并确保你的sizeof(long)==sizeof(double)
2. 你代码甚至还写成了reinterpret_cast<long>(lNum)
[解决办法]
reinterpret_cast是转换指针的。
[解决办法]
reinterpret_cast 仅仅是重新解释了给出的对象的比特模型而没有进行二进制转换,操作数为指针或引用才有意义.

热点排行