64位數如何XOR高32位,低32位。 謝謝XOR高32位,低32位,64位數
4
A
回答
9
(v & 0xffffffff)^((v >> 32) & 0xffffffff)
1
只是踢,這是另一種解決方案。已經給出的可能是要走的路。
uint32_t* number32;
uint64_t number64 = 0xffff1111ffffffff;
uint32_t xorValue;
number32 = (uint32_t*)&number64;
xorValue = number32[0]^number32[1];
+0
看起來像如果你使用別名假設,你的編譯器不會那樣。 – 2011-06-16 11:53:39
0
uint32_t hi_low_xor(uint64_t x) {
return static_cast<uint32_t>(x)^static_cast<uint32_t>(x >> 32);
}
+0
錯了。結果可能超過32位,這顯然是不正確的。 – 2011-06-16 12:48:18
+0
@Artem。這不是真的。一對32位數的XOR總是32位數。 – 2011-06-22 13:11:39
0
,如果你想將結果存儲在低32位:
(v & 0xffffffff)^((v >> 32))
,如果你想將結果保存在高32位:
((v & 0xffffffff)^((v >> 32))) << 32
相關問題
- 1. 如何在VBScript中將64位數分成高32位和低32位?
- 2. 64位bsr asm截斷高位32位
- 3. MySQL 32位或64位 - Apache 32位Windows 64位?
- 4. 32位OpenFileDialog - > 64位System32?
- 5. 64位debian和32位酒
- 6. Xcode&64位&32位問題
- 7. SharePoint 64位或32位
- 8. C# - 在32位和64位
- 9. 從32位變爲64位
- 10. 32位64位兼容
- 11. 在32位和64位
- 12. 32位和64位性能
- 13. 64位OS/32位進程
- 14. Java JDK 32位與64位
- 15. 32位和64位的ODP.NET
- 16. 64位的32位除法
- 17. ODBC .NET 32位和64位
- 18. Gluegen 32位和64位庫
- 19. 64位weblogic 32位oracle DB
- 20. Java 32位和64位
- 21. 32位和64位CPU/OS
- 22. SHGetFolderPath()32位與64位
- 23. 從32位到64位
- 24. 32與64位GC
- 25. 32與64位JVM
- 26. Ubuntu 64或32位?
- 27. 無論系統是32位還是64位,int都是32位還是64位?
- 28. 64位數字到2x 32位
- 29. SetWindowLong函數/ GetWindowLong和32位/ 64位CPU
- 30. Windows 7(64位)上的IIS 7和Ms Access 32位32位
嚴格地說第二位掩碼是沒有必要的。 – 2011-06-16 11:25:15
即使變量被簽名? – 2011-06-16 11:25:48
@Ignacio有符號整數的位運算... *不寒而慄*。不,你說得對。 – 2011-06-16 11:28:39