是否存在长整型(使用二进制补码)和双精度型(使用 IEEE 754 格式)的二进制表示形式完全相同的值?如果是这样,存在多少个这样的数字以及它们是什么?特别是,我正在寻找长整型和双精度表示按位相同的情况,而不仅仅是十进制值相等的情况。有谁知道关于这个主题的任何研究或讨论吗?
我发现只有 0,double 和 long 的按位表示是相等的,两者都只是 64 位零。还有其他的吗?如果我们取 1,那么使用二进制补码的 long 1 按位表示为 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000001,对于 double 为 0 01111111111 0000 000000 00 00000000 00000000 00000000 00000000 00000000。因此它们的按位表示不同。
long a = X;
double b = X;
//和X的按位表示应该是相同的。