python-将24位精确打包为无符号/有符号整数

python-将24位精确打包为无符号/有符号整数,python,Python,我需要通过以太网连接发送正好24位的数据,而另一端的程序在某些情况下需要一个无符号整数,在其他情况下需要一个有符号整数(C类型)。我想使用struct类,但它没有内置3个字节的类型(如uint24\t) 有人问过类似的问题,但答案总是包括发送4个字节并用零填充数据包。但是,我不能这样做,因为我没有编写接收数据的程序,它需要24位 我对这类编程非常陌生,非常感谢您的帮助 使用struct模块,创建一个正好包含三个8位字节的字符串 import struct # 24 bits: 01010101

我需要通过以太网连接发送正好24位的数据,而另一端的程序在某些情况下需要一个无符号整数,在其他情况下需要一个有符号整数(C类型)。我想使用struct类,但它没有内置3个字节的类型(如uint24\t)

有人问过类似的问题,但答案总是包括发送4个字节并用零填充数据包。但是,我不能这样做,因为我没有编写接收数据的程序,它需要24位


我对这类编程非常陌生,非常感谢您的帮助

使用
struct
模块,创建一个正好包含三个8位字节的字符串

import struct
# 24 bits: 01010101 10101010 11110000
byte1 = 0x55
byte2 = 0xaa
byte3 = 0xf0
data = struct.pack("BBB", byte1, byte2, byte3)
根据要发送的位的获取方式,可以直接定义字符串:

data = '\x55\xaa\xf0'

只需发送一个3字节的数组。。。另一端可以将其解释为您的24位值;只要我发送24位正确的信息,另一端就会知道如何处理它。但是如何确保数组的长度为3字节?我对这个编程领域知之甚少……Module
rawutil
支持24位有符号和无符号整数。