在64比特数中,将较高的32比特与较低的32比特进行XOR
XOR higher 32 bits with lower 32 bits in a 64 bit number
本文关键字:XOR 更新时间:2023-10-16
在64位数字中如何将高阶32位与低阶32位异或。感谢
(v & 0xffffffff) ^ ((v >> 32) & 0xffffffff)
这里有另一个解决方案。已经给出的可能是要走的路。
uint32_t* number32;
uint64_t number64 = 0xffff1111ffffffff;
uint32_t xorValue;
number32 = (uint32_t*)&number64;
xorValue = number32[0]^number32[1];
uint32_t hi_low_xor(uint64_t x) {
return static_cast<uint32_t>(x) ^ static_cast<uint32_t>(x >> 32);
}
如果您想将结果存储在较低的32位中:
(v & 0xffffffff) ^ ((v >> 32))
如果您想将结果存储在更高的32位中:
((v & 0xffffffff) ^ ((v >> 32))) << 32
相关文章:
- 没有找到相关文章