Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.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/Micropython中求和两个字节_Python_Esp32_Micropython - Fatal编程技术网

在Python/Micropython中求和两个字节

在Python/Micropython中求和两个字节,python,esp32,micropython,Python,Esp32,Micropython,我想用Python和Micropython以最简单的方式求两个字节的和 我是。正在为大学编写一些代码。它只需将数据发送到通过“掩码”移动的地址,例如 addrs=b'\x10' 掩码=b'\x01' finaladdrs=addrs+mask#应该是b'\x11' machine.send(finaladdrs,somevalue) 我已经尝试过转换为int,但无法正常工作。转换为字符串需要大量处理。您可以使用ord和chr进行转换 代码: 输出: b'\x11' 您可以使用ord和chr进

我想用Python和Micropython以最简单的方式求两个字节的和

我是。正在为大学编写一些代码。它只需将数据发送到通过“掩码”移动的地址,例如

addrs=b'\x10'
掩码=b'\x01'
finaladdrs=addrs+mask#应该是b'\x11'
machine.send(finaladdrs,somevalue)

我已经尝试过转换为int,但无法正常工作。转换为字符串需要大量处理。

您可以使用ord和chr进行转换

代码:

输出:

b'\x11'

您可以使用ord和chr进行转换

代码:

输出:

b'\x11'

字节字符串的元素是整数:

>>> addrs = b'\x10'
>>> mask = b'\x01'
>>> addrs[0] + mask[0]
17
返回到字节:

>>> bytes([addrs[0] + mask[0]])
b'\x11'
这可以方便地迭代字节数据,例如生成校验和:

>>> data = bytes([1,2,3,4,5])
>>> data
b'\x01\x02\x03\x04\x05'
>>> data += bytes([sum(data) & 0xFF]) # bytes data must be 0-255, hence mask
>>> data
b'\x01\x02\x03\x04\x05\x0f'
要限制从整数列表到字节(反之亦然)的转换,可以使用可变字节数组:

>>> addrs = bytearray(b'\x10')
>>> mask = b'\x01'
>>> addrs[0] += mask[0]
>>> addrs
bytearray(b'\x11')

字节字符串的元素是整数:

>>> addrs = b'\x10'
>>> mask = b'\x01'
>>> addrs[0] + mask[0]
17
返回到字节:

>>> bytes([addrs[0] + mask[0]])
b'\x11'
这可以方便地迭代字节数据,例如生成校验和:

>>> data = bytes([1,2,3,4,5])
>>> data
b'\x01\x02\x03\x04\x05'
>>> data += bytes([sum(data) & 0xFF]) # bytes data must be 0-255, hence mask
>>> data
b'\x01\x02\x03\x04\x05\x0f'
要限制从整数列表到字节(反之亦然)的转换,可以使用可变字节数组:

>>> addrs = bytearray(b'\x10')
>>> mask = b'\x01'
>>> addrs[0] += mask[0]
>>> addrs
bytearray(b'\x11')

如果您可以灵活地分配
addr
mask
0b
开始,而不是
b'\x'
,那么以下是一个解决方案:

addrs = 0b10  
mask = 0b01 
finaladdrs = bin(addrs + mask)
print(finaladdrs)
输出:

0b11

如果您可以灵活地分配
addr
mask
0b
开始,而不是
b'\x'
,那么以下是一个解决方案:

addrs = 0b10  
mask = 0b01 
finaladdrs = bin(addrs + mask)
print(finaladdrs)
输出:

0b11

如果
addrs=b'\x01'
mask=b'\x01'
显示的代码有什么问题?如果
addrs=b'\x01'
mask=b'\x01'
,显示的代码有什么问题?显示的代码有什么问题?