我在倍增0x1d400 * 0xE070381D
。
当我在计算器上执行此操作时,结果是0x00019A4D26950400
当我尝试在 cpp 中实现它时,这就是我所拥有的。
long long d;
d = 3765450781 * 1d400;
这段代码给出的结果是d = 0x26950400
. 这只是底部的 4 个字节,其他所有内容都发生了什么?
我试图隔离前 4 个字节0x00019A4D
并将它们保存到另一个变量中。如何才能做到这一点?
如果我能让乘法显示所有 8 个字节,那么我想隔离高 4 个字节的方法是:
d = d & 0xFF00; //0xFF00 == (binary) 1111111100000000
d = d>>8;
这行得通吗?