我正在制作一个基本的服务器/客户端程序,并且我正在用Python制作客户端。我必须在发送消息之前格式化消息。第一个字段是消息长度。我可以计算消息长度,但是我需要将值存储在byte数组的前两个字节中。如果消息长度小于256,它应该只有一个字节。我怎么能强制这个数字是2个字节,而不用在前面加一个0x00?如何在Python中将一个字节int更改为两个字节?
0
A
回答
2
使用struct
module。例如,要按网络顺序(big-endian)将整数打包为无符号的双字节值,您应该这样做:
> my_value = 1234
> packed_bytes = struct.pack('>H', my_value)
> print packed_bytes
'\x04\xd2'
+0
谢谢!这将起作用 –
+0
如果my_value等于150字节的一个字节值,那么即使技术上只占用1个字节,我如何强制将它压入packed_bytes的前两个字节?我只需要能够处理1个字节和2个字节的数字。 –
+0
@AlexJohnson:我不明白你的问题。如果'my_value'是150,那么这个代码的输出将是''\ x00 \ x96'',即两个字节的第一个字节为0。 –
相关问题
- 1. 将4个字节的字节转换为一个int
- 2. 将两个字节转换为一个字节,反之亦然
- 3. 将两个字节合并为一个
- 4. 字符串字节为一个int
- 5. 如何将两个字节转换为一个16位数字?
- 6. 将一个字节的字符串转换为一个unsigned int
- 7. 包装4个字节为一个int
- 8. 为什么ToBase64String将16个字节的字符串更改为24个字节
- 9. 在C中将2个字节组合成一个短int int
- 10. 四个1字节字符到一个4字节int?
- 11. 如何将单个字符更改为一个int在sml/nj
- 12. 如何在Python中将整数视为一个字节数组?
- 13. 将3个字节转换为int吗?
- 14. 如何在Java中将int转换为三个字节?
- 15. 在一个字节中交换两个半字节
- 16. 在两个字节长的变量中反转一个字节
- 17. C#帮助将两个字节的字拆分为字节
- 18. 如何在java中将三个字节数据压缩成两个字节
- 19. INT转换为一个字节数组
- 20. 在Python 2.7中将字符串更改为字节类型
- 21. 两个字节
- 22. Python 3.4将字节字节字节转换为字节对象
- 23. 如何将一个Android.graphics.bitmap改成一个字节数组在c#
- 24. 如何将int设置为字节* C#
- 25. 如何将int转换为字节?
- 26. 将字节[]转换为int
- 27. 从Ruby中的一个字节获取两个半字节
- 28. 如何从一个字节流中分离一个字节
- 29. 在SSAS中将字节转换为Int
- 30. C#将Int转换为两个十六进制字节?
'struct'模块可能会有所帮助。 – GWW