我知道如何做位移,但我的價值似乎跑了邊緣,我失去了原來的價值,試圖保留8位的回報。如何將無符號16位和無符號32位整數編碼爲無符號8位存儲器陣列?
0
A
回答
1
對於無符號16位整數:
unsigned short val16 = 0x1234;
unsigned char enc[2];
enc[0] = val16 & 0xff; // stores 0x34 to enc[0]
enc[1] = val16 >> 8 & 0xff; // stores 0x12 to enc[1]
對於無符號32位整數:
unsigned int val32 = 0x12345678;
unsigned char enc[4];
enc[0] = val32 & 0xff; // stores 0x78 to enc[0]
enc[1] = val32 >> 8 & 0xff; // stores 0x56 to enc[1]
enc[2] = val32 >> 16 & 0xff; // stores 0x34 to enc[2]
enc[3] = val32 >> 24 & 0xff; // stores 0x12 to enc[3]
更新
帶小數文字完全相同代碼爲:
unsigned short val16 = 4660; // 4660 = 0x1234
unsigned char enc[2];
enc[0] = val16 & 255;
enc[1] = val16 >> 8 & 255;
和
unsigned int val32 = 305419896; // 305419896 = 0x12345678
unsigned char enc[4];
enc[0] = val32 & 255;
enc[1] = val32 >> 8 & 255;
enc[2] = val32 >> 16 & 255;
enc[3] = val32 >> 24 & 255;
相關問題
- 1. 無符號16位和64位整數
- 2. 將8位無符號PCM轉換爲8位帶符號PCM
- 3. 16位無符號整數(uint16_t)
- 4. Qt QByteArrays + 16位無符號整數
- 5. 如何將有符號的32位int轉換爲無符號的32位int?
- 6. Javascript中的無符號32位整數
- 7. QT轉換16位QImage爲8位無符號字符在QT
- 8. 8位無符號字符數組到無符號字符
- 9. 將4位8位無符號整數轉換爲32位浮點型
- 10. 將值轉換爲無符號32位
- 11. 將無符號16位int轉換爲C#中有符號16位int int#
- 12. SSE無符號/符號的16位寄存器減法
- 13. Python:無符號32位按位算術
- 14. 存儲在一個無符號的16位整數的RGB
- 15. HDF5寫出32位無符號整數到磁盤上的64位,並讀入32位無符號int
- 16. 用兩個無符號的16位整數表示一個無符號的32位值
- 17. 將n位整數從無符號轉換爲有符號
- 18. 如何將無符號的24位int轉換爲帶符號的int並將符號擴展爲32位?
- 19. 存儲一個8位無符號整數
- 20. 算法使用32位無符號整數乘64位數
- 21. 將原始二進制8位無符號文件轉換爲16位無符號的Python成像庫
- 22. 32位無符號整數的2位右移
- 23. 32位無符號整數(大端)轉換爲長和後
- 24. 無符號整數位字段移產量符號整數
- 25. 將32位無符號「真實」數據類型(分成兩個16位有符號字)轉換爲javascript
- 26. 帶符號和無符號整數的位操作問題,XNOR
- 27. C++有符號整數轉換爲無符號位數更多位
- 28. 從無符號整數計數位
- 29. Powershell,如何聲明一個無符號的32位整數?
- 30. 從BitArray轉換爲16位無符號整數在C#
這很可能是一個有趣的問題,但你將不得不提供更多的信息 - 例如,樣本代碼,樣本輸入和輸出樣本顯示的問題。 [mcve] – davidbak