Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将4字节十六进制转换为单个字节_Python_Split_Hex - Fatal编程技术网

Python 将4字节十六进制转换为单个字节

Python 将4字节十六进制转换为单个字节,python,split,hex,Python,Split,Hex,在python中,我需要从用户那里获取一个值并通过串行方式发送它。它最多有一个4字节的值,假设该值为123456789。我可以转换为十六进制,没有问题,这会给我“0x75bcd15”,但我需要将其作为4个单独的字节(b'\x07\x5b\xcd\x15')发送 我已经通过2字节逐位移位完成了这项工作` stake = int(single_game_stake_entry.get()) stakeMSB = (bytes([stake >> 8])) stakeLSB = (byt

在python中,我需要从用户那里获取一个值并通过串行方式发送它。它最多有一个4字节的值,假设该值为123456789。我可以转换为十六进制,没有问题,这会给我“0x75bcd15”,但我需要将其作为4个单独的字节(b'\x07\x5b\xcd\x15')发送

我已经通过2字节逐位移位完成了这项工作`

stake = int(single_game_stake_entry.get())

stakeMSB = (bytes([stake >> 8]))
stakeLSB = (bytes([stake & 0xFF]))`
如果有可能的话,我似乎不能用4个字节来扩展它。我尝试了字节,bytearray,但我无法分割值


提前感谢

一个简单的方法是使用int.to_bytes()方法。 您可以用两种不同的方式调用该方法,如下所示

stake = 123456789
print(int.to_bytes(stake, 4, 'big')) # Call the method of the int class
print(stake.to_bytes(4, 'little')) # Call the method directly on the int to convert

您必须提供结果的字节数和字节顺序(小或大)。

通过下面的方法解决,不确定这是否是最好的方法,但它可以工作
meterNumber=bytes([secmeternumber.get()])meterValue=hex(int(sec_meter_value_entry.get())mvSplit=meterValue.split(“0x”)raw=mvSplit[1]。zfill(8)mvA=(raw[0:2])mvB=(原始[2:4])mvC=(原始[4:6])mvD=(原始[6:8])mvb1=bytes.fromhex(mvA)mvb2=bytes.fromhex(mvB)mvb3=bytes.fromhex(mvC)mvb4=bytes.fromhex(mvD)
谢谢,就这样!我总是把事情复杂化