在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
相关文章:
  • 没有找到相关文章