小编Sol*_*der的帖子

将 float / double 转换为 C++ 中的 IEEE754 表示形式

试图弄清楚这是如何工作的,但我无法理解我所代表的内容。我知道我们分配一个unsigned long long因为它包含与float相同的位数。但我到底代表什么?

我最好的解释是,我们试图将 double 数字转换为 unsigned long long int,因为它们具有相同的位数。看来最好的方法是取消引用我们设置的指针?

任何帮助将不胜感激!

void printDouble(double d) {

unsigned long long int i = *(unsigned long long int *)&d;

for (int j = 63; j >= 0; j--) {
    std::cout << ((i >> j) & 1);

    if (j == 63) std::cout << " ";
    else if (j == 52) std::cout << " ";
}
Run Code Online (Sandbox Code Playgroud)

}

c++ ieee-754

2
推荐指数
1
解决办法
1422
查看次数

标签 统计

c++ ×1

ieee-754 ×1