在python中改变一个值

时间:2015-06-02 11:17:58

标签: python byte swap

我有一个I²C寄存器的值,它是2字节宽,如01C5(作为字符串)。 对于我的应用程序,我必须交换高字节和低字节。

我试过这种方式:

valueLow = hex(int(value,16) >> 8)
valueHigh = hex(int(value,16) & 0x0011)

但我得到的结果现在应该是它们的样子。

你有更好的解决方案吗?

1 个答案:

答案 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