我有一个I²C寄存器的值,它是2字节宽,如01C5(作为字符串)。 对于我的应用程序,我必须交换高字节和低字节。
我试过这种方式:
valueLow = hex(int(value,16) >> 8)
valueHigh = hex(int(value,16) & 0x0011)
但我得到的结果现在应该是它们的样子。
你有更好的解决方案吗?
答案 0 :(得分:0)
使用它来获取字节交换值:
swappedValue = hex(value<<8&0xff00 | value>>8&0x00ff)
或者,如果value是一个字符串,
swappedValue = hex(int(value,16)<<8&0xff00 |int(value,16)>>8&0x00ff)
如果您需要一个号码(对于I2C),请尝试:
swappedValue = int(value,16)<<8&0xff00 | int(value,16)>>8&0x00ff