Python中文
首页
教程
问答
标签
搜索
登录
注册
用于cashcode驱动程序的Python CRC(从JS到Python)
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我尝试重新编写CashCode的CCNET驱动程序,从node到Python。 但是,我真的不能运行CRC生成器。在</p> <p>{a1}“你可以找到^”代码</p> <p>以下是JS函数:</p> <pre><code>function getCRC16(bufData) { var POLYNOMIAL = 0x08408; var sizeData = bufData.length; var CRC, i, j; CRC = 0; for (i = 0; i < sizeData; i++) { CRC ^= bufData[i]; for (j = 0; j < 8; j++) { if (CRC & 0x0001) { CRC >>= 1; CRC ^= POLYNOMIAL; } else CRC >>= 1; } } var buf = new Buffer(2); buf.writeUInt16BE(CRC, 0); CRC = buf; return Array.prototype.reverse.call(CRC); } </code></pre> <p>我尝试<code>crcmod</code>,但它不是预定义函数,当我尝试设置多项式时,得到错误</p> <p>以下是我的工作代码:</p> ^{pr2}$ <p>我得到了</p> <pre><code>CRC ^= int(str(data[i:(i+2)]), 16) ValueError: invalid literal for int() with base 16: '\x02\x03' </code></pre> <p>帮我做那个功能。(输入二进制/整数或十六进制字符串)</p> <p><strong>UPD:</strong>:它与<code>bytearray.fromhex(data)</code>一起工作。谢谢)</p> <pre><code>@staticmethod def getCRC16(data): data = bytearray.fromhex(data) CRC = 0 for bit in data: CRC ^= bit for j in range(0, 8): if (CRC & 0x0001): CRC >>= 1 CRC ^= 0x8408 else: CRC >>= 1 CRC = format(CRC, '02x') return CRC[2:4] + CRC[0:2] </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>你需要</p> <pre><code>my_int = struct.unpack("h",data[i:i+2]) # my_int = 770 ? </code></pre> <p>您还需要使用0xFFFF对结果进行AND运算来截断结果(我认为)(因为python int将永远保持增长)</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何添加虚拟方法
1 回答
如何添加表示整数的擦边字符串?
1 回答
如何添加要在Bokeh中使用的新font.ttf文件?
9 回答
如何添加要显示的矩阵XY轴编号和XY轴
7 回答
如何添加计数?
3 回答
如何添加计数器函数?
10 回答
如何添加计数器列来计算数据帧中另一列中的特定值?
3 回答
如何添加计数器来跟踪while循环中的月份和年份?
2 回答
如何添加计数并删除countplot的顶部和右侧脊椎?
8 回答
如何添加计时器wx.应用程序更新窗口对象的主循环?
4 回答
如何添加评论到帖子?PostDetailVew,Django 2.1.5
6 回答
如何添加评论拉梅尔亚姆
7 回答
如何添加诸如矩阵Python/Pandas之类的数据帧?
9 回答
如何添加谷歌地点自动完成到Flask?
4 回答
如何添加超时、python discord bot
10 回答
如何添加超过1dp的检查
1 回答
如何添加距离方法
4 回答
如何添加跟随游戏的敌人精灵
9 回答
如何添加路径以便python可以找到程序?
8 回答
如何添加身份验证/安全性以使用happybase访问HBase?
9 回答