的整數我想的整數的最低兩個字節打包成另一種在整數,一個卡在此包裝位到C++
Q
包裝位到C++
2
A
回答
4
尾段獨立溶液:
x = ((y >> 0) & 0xFF) |
((y >> 8) & 0xFF);
+0
爲什麼?他在這兩種情況下都使用整數類型,所以不會有任何endian問題。 – 2014-11-03 17:06:02
+1
@JamesKanze我只是想說一些其他的解決方案,比如'uint8_t * ptr =(uint8_t *)&the_int; x = * ptr; PTR ++; x | = * ptr;'會依賴於endian,因爲你不知道'ptr'是否會給你ms字節或ls字節。如果你通過1 uint32_t和4 uint8_t組合來解決問題,那麼同樣的問題。 – Lundin 2014-11-03 20:30:00
1
如果我理解你正確的足夠的解決方案應該是這樣的:
another_integer = first_integer & 0xFFFF // which is 65536, which is 2^16 so 0000000011111111 binary (for 4 byte integer)
這樣你會分配值的兩個較低的b first_integer到another_integer的ytes通過使用簡單的AND掩碼:
0101110011101010
0000000011111111 AND
----------------
0000000011101010
相關問題
- 1. 包裝一個int到C++位域
- 2. 包裝位圖
- 3. C#包裝到開羅庫
- 4. Python包裝到C回調
- 5. C#HTML到PDF WkHtmlToPdf包裝
- 6. 用C++/CLI包裝器返回位圖
- 7. C包裝C++
- 8. 包裝C#C++
- 9. C++ LPSTR到C#字符串.NET包裝
- 10. C++到C#包裝空異常錯誤
- 11. 安裝NPM包到不同的位置
- 12. SlickGrid C#包裝
- 13. C#包裝
- 14. 包裝malloc - C
- 15. c#將webdriver包裝到windows服務中
- 16. 包裝一類的字段到C#
- 17. C++ Speex到Flac包裝器/庫
- 18. SWIG:從純C++到工作包裝器
- 19. Objective-C中包裝C++類
- 20. LAPACK包裝的C/C++
- 21. 包裝C#CLI類爲C#
- 22. 從C#與C++/CLI包裝
- 23. 在C#中包裝Visual C++#
- 24. C可變包裝
- 25. C包裝for pygments
- 26. C++ CLI包裝器
- 27. C#包裝SQLite的
- 28. C#包裝原語
- 29. C#的包裝器
- 30. 通用包裝C++
'X =(Y&爲0xFFFF)+(X〜0xFFFF的);'? – Borgleader 2014-11-03 15:17:58
@Borgleader最低2字節,最低2位 – PeterT 2014-11-03 15:18:26
@PeterT哦誤讀了。在我的防守中,這個想法是一樣的,只有面具變化。 – Borgleader 2014-11-03 15:20:39