Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.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中的uint64到十六进制数组_Python_Hex_Byte_Can Bus_Socketcan - Fatal编程技术网

Python中的uint64到十六进制数组

Python中的uint64到十六进制数组,python,hex,byte,can-bus,socketcan,Python,Hex,Byte,Can Bus,Socketcan,我有不同的uint64号码,我想通过CAN总线和Python中的SocketCAN发送这些号码。我需要将这个大数字分成8个字节,这样我就可以将值分配给can数据字节。但我正在努力实现。 我非常感谢您的帮助或建议 谢谢你的帮助 在将数字转换为字节表示时,struct模块是您的朋友: i = 65357 print(hex(i)) bigendian = struct.pack(">Q", i) littleendian = struct.pack("<Q", i) print(rep

我有不同的uint64号码,我想通过CAN总线和Python中的SocketCAN发送这些号码。我需要将这个大数字分成8个字节,这样我就可以将值分配给can数据字节。但我正在努力实现。 我非常感谢您的帮助或建议


谢谢你的帮助

在将数字转换为字节表示时,
struct
模块是您的朋友:

i = 65357
print(hex(i))
bigendian = struct.pack(">Q", i)
littleendian = struct.pack("<Q", i)

print(repr(bigendian)
print(repr(littleendian)

这意味着您可以方便地使用单个字节(按您需要的顺序)通过can总线发送它们

当涉及到将数字转换为字节表示时,
struct
模块是您的朋友:

i = 65357
print(hex(i))
bigendian = struct.pack(">Q", i)
littleendian = struct.pack("<Q", i)

print(repr(bigendian)
print(repr(littleendian)

这意味着您可以轻松地使用单个字节(按照您需要的顺序)通过can总线发送它们

假设您使用的是Python 3,您可以简单地使用Python int的
to_bytes
方法,如下所示:

i = 65357
print(hex(i))
print(i.to_bytes(8, 'big'))
print(i.to_bytes(8, 'little'))
输出:

0xff4d
b'\x00\x00\x00\x00\x00\x00\xffM'
b'M\xff\x00\x00\x00\x00\x00\x00'

不确定您是否正在使用python can库,但如果您正在使用,您可以将字节、int列表或bytesarray传递给。假设您正在使用python 3,您可以简单地使用python int的to_bytes方法,如下所示:

i = 65357
print(hex(i))
print(i.to_bytes(8, 'big'))
print(i.to_bytes(8, 'little'))
输出:

0xff4d
b'\x00\x00\x00\x00\x00\x00\xffM'
b'M\xff\x00\x00\x00\x00\x00\x00'
不确定您是否正在使用
python can
库,但如果您正在使用,则可以将字节、int列表或bytesarray传递给