|
|
1
2
我不完全确定正确的代码应该是什么,但如果目的是
简短的版本是您想要的:
问题不在于
在这里,您可能会遇到C和Python类型之间的差异问题(C积分类型是固定大小的,并且溢出;Python积分类型实际上是无限大小的,并根据需要增长)。但我认为这不是你的问题。 问题只是如何将结果转换为字符串的问题。
调用的结果
在C中,您几乎可以将有符号整数视为大小相同的无符号整数(尽管在某些情况下,您可能不得不忽略警告)。具体作用取决于您的平台,但在2s补码平台上,有符号短0x08fb相当于无符号0xf705。例如,如果你这样做了
但在Python中,没有无符号整数。int-0x08fb与0xf705无关。如果你这样做了
你的代码确实是这样
无论如何,您必须明确决定“无符号等价”的含义,并编写代码来实现这一点。由于您试图匹配C在2s补码平台上的功能,因此可以将显式转换写成
|
|
2
2
这很简单。我通过在计算器上手动添加所有头字节来检查你朋友的算法,结果是正确的(
现在,我实际上并不了解python,但在我看来,它就像是在加半字节的值。您的标题字符串是这样的:
然后,你将该字符串中的每个字节从十六进制转换并相加。这意味着你要处理从0到15的值。您需要将每两个字节视为一对,并将其转换(值从0到255)。或者您需要使用实际的二进制数据,而不是二进制数据的文本表示。
在算法结束时,您实际上不需要执行
|
|
|
JustinCoplin · 在Tia 14中导出梯形图逻辑 8 年前 |
|
|
Krelembra · 我应该选择什么类型的实时外部板或控制器? 8 年前 |
|
|
Carbide · 使用Pycom将数据从PLC打印到Python 8 年前 |
|
|
Mario Moure · 使用Moka7读取Plc中的数据 8 年前 |
|
|
abestic9 · 二进制PLC通信的校验和 13 年前 |
|
|
Glen Morse · &符号是什么意思? 13 年前 |
|
|
Gutanoth · 如何在SCL中实现“泛化” 13 年前 |