我知道如何做位移,但我的价值似乎跑了边缘,我失去了原来的价值,试图保留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