【发布时间】:2017-03-18 18:20:25
【问题描述】:
可能有人问过这个问题,但我搜索并找不到答案。
我正在实现一个玩具虚拟机,其中 OpCode 采用以下形式:
std::tuple<int8_t, int64_t, int64_t> // instruction op1, op2
我正在尝试将一个 double 打包到一个操作数中,并在处理它时再次读回它。这不可靠。
double d = ...
auto a = static_cast<int64_t>(d);
auto b = static_cast<double>(a)
// sometimes, b != d
有没有办法将双精度的位表示打包到一个 int64_t 中,然后读取该位模式得到与以前完全相同的双精度?
【问题讨论】:
-
被问到的问题大概是stackoverflow.com/q/2544394/11683,讨论你目前有什么,stackoverflow.com/a/103868/11683,讨论你可能想要什么。