回答
這就是而不是的字節序轉換。輸出應該是0xEFBEADDE
,而不是0xFEEBDAED
。 (只有字節被交換,並且每個字節是2個十六進制數字。)
對於小端和大端之間的轉換,請看_byteswap_ulong。
或者在* nix系統上也許是'htonl'(注意'htonl'在大端系統上是不可用的)。 – 2011-03-31 06:09:22
我發現'htobe16','htole16','le16toh','be16toh'和32位版本在編寫跨平臺代碼時更加有用(和明確)。如果給定的平臺沒有它們,很容易將名稱映射到平臺所具有的任何平臺上。 – tomlogic 2011-03-31 18:10:04
@tomlogic:那些不能在big-endian系統上工作,但是......你不能像重新設置_byteswap_ulong一樣簡單嗎?它只是一個'#define' ... – Mehrdad 2011-03-31 18:13:52
爲半字節反轉的一般過程是:
(第(i & 0xF0000000)>> 28)| ((i & 0xF000000)>> 20)| ((i & 0xF00000)>> 12) | ..... | ((我& 0xF)< < 28)
面膜,移位,或(我希望我右邊的數字):
- 提取你感興趣的取與數量的部分(&)與面具。
- 使用>>和< <操作將其切換到目標位置。
- 通過ORing(|)構造新的值。
如果你想重新排序字節,你將使用0xFF進行掩碼。正如大家所說,這可能是你想要的,如果你正在尋找罐裝版本,請按照其他人的建議。
- 1. 網絡字節順序來承載字節順序轉換Java
- 2. 字節順序:將java字節轉換爲c#
- 3. 序列化與字節代碼轉換
- 4. cpp中的字節順序轉換
- 5. ARM中的字節順序轉換
- 6. 字節序的C++代碼
- 7. c中的字節反轉順序
- 8. C轉換char *到網絡字節順序轉移
- 9. 字節序轉換C++
- 10. 字節順序轉換和g ++警告
- 11. 轉換uint32_t到網絡字節順序
- 12. 在Objective-C中交換字節順序?
- 13. C#從byte []轉換爲struct。字節順序是錯誤的
- 14. 網絡字節順序來承載字節順序轉換在php
- 15. Python base64數據解碼和字節順序轉換
- 16. C++轉換字節
- 17. 字節順序在C
- 18. 轉換Objective-C的字節代碼來夫特
- 19. C++將字節轉換爲操作碼?
- 20. 轉換C#代碼
- 21. C#代碼轉換
- 22. 是否需要轉換字符串的字節順序?
- 23. 轉換C++代碼轉換爲C#:SendMessageTimeout()
- 24. 將字節數組代碼從c轉換爲swift
- 25. 轉換一個字節交換/從C++轉向代碼片段到.NET
- 26. 將Java代碼轉換爲C#代碼(十六進制串到字節陣列)
- 27. 轉換C++代碼,以C#
- 28. 轉換C++代碼到C#
- 29. 轉換代碼C++到C#
- 30. 如何將Java源代碼轉換爲字節代碼?
您給出的示例將數字翻轉爲4位塊,而不是完整的8位字節。 – 2011-03-31 06:04:38
這真的是你想要做的嗎?你已經扭轉了半字節,而不是字節...... endianess? – 2011-03-31 06:06:08