每个值64位整数的数字应转换为位等效的64位浮数
Each deserialized 64 bit integer number should be converted to bit wise equivalent 64 bit floating number
我在文件中具有以上语句。预期输出是两倍。我找不到与我的问题相关的东西。我找到了这个通过C中的插座传递结构但是不知道它是否相关。我没有阅读该INT64值。我正在从其他过程中获得它,这就是它的设计方式。
有人对ints的序列化和估算化有什么理论?
恰好有一种定义的方法将一种类型的一种类型用于C -memcpy
。
template<class Out, class In, std::enable_if_t<(sizeof(In) == sizeof(Out))>* = nullptr>
Out mangle(const In& in)
{
Out result;
std::memcpy(std::addressof(result), std::addressof(in), sizeof(Out));
return result;
}
int main()
{
double a = 1.1;
auto b = mangle<std::uint64_t>(a);
auto c = mangle<double>(b);
std::cout << a << " " << std::hex << b << " " << c << std::endl;
}
示例输出:
1.1 3ff199999999999a 1.1
如何读取该64位编号并使用reinterpret_cast将其转换为位等效浮点数。
int64_t a = 121314;
double b = *reinterpret_cast<double*>(&a);
int64_t c = *reinterpret_cast<int64_t*>(&b);
assert(a==c);
相关文章:
- 在 c++ 中输出 64 位整数
- 使用192/256位整数求和无符号64位整数向量的点积的最快方法
- 在 64 位整数内旋转(90°)位矩阵(最多 8x8 位)
- 如何通过COM接口将64位整数从C++发送到C#
- GMP-将64位整数存储在mpz_t/mpz_class中,并返回64位整数
- 将 64 位整数中的每个其他位与 32 位整数进行比较
- 按段比较 64 位整数
- 64 位整数和更早的 C++ 编译器
- 64 位整数到双精度冲突
- 我们是否需要担心 32 位或 64 位整数,或者我们只使用 'int'
- 读取 64 位整数二进制文件
- 将 n 位从 8 位数组复制到 64 位整数?
- 每个值64位整数的数字应转换为位等效的64位浮数
- 将设置位移动到 64 位整数的末尾
- C 中64位整数的奇怪行为
- 在C++中实现 CTR 加密模式时,CTR 加上 64 位整数
- 通过GNU扩展asm约束加载64位整数常量
- 读取 64 位整数文件
- 编译器警告(CodeBlocks/wxwidget):您的编译器似乎不支持64位整数,而是使用仿真类
- 如何从64位整数获得更高的20位