繁体   English   中英

Python3.4对字节使用余数

[英]Python3.4 use remainder for byte

Python3.4.3声明字节类型不支持%。 有谁知道另一种执行余数模的方法。

我正在查看来自u3.py的LabJack设备代码,并尝试将代码从Python2更新到Python3.4.3。

def __init__(self, Dac, Value):

    self.dac = Dac

    self.value = Value

    self.cmdBytes = [ 38 + (Dac % 2), Value % 256, Value >> 8 ]

正确格式## d.getFeedback(u3.DAC16(Dac = 0,Value = 0x5566))

Python2允许将字节存储在文本字符串中,但是在Python3中,字节是它们自己的类型。 所以我将它们转换为Python3.4.3使用以下代码生成b''数据

str.encode(STR(十六进制(32768))

 b'0x8000'

不幸的是,我从收到此错误开始...

类型错误:在字符串格式化期间,并非所有字符串都被转换

我认为这个错误来自Python3.4.3中的字节不支持%256

类型错误:%不支持的操作数类型:“字节”和“整数”

我不确定为什么%会说'int'不支持它,因为它显然在Python3.4.3中

我非常感谢您的帮助。 谢谢,

我认为这意味着余数实际上是对数字的运算。 字节存储而没有数字解释。

因此,如果要将数字转换为“存储”,则应使用struct模块

from struct import pack

def to_cmd(dac, value):
    return pack("!ch", dac % 2, value) # a char and a 2 byte short

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM