C无符号字符的python版本
我需要有关此C代码的python版本的帮助:C无符号字符的python版本,python,char,Python,Char,我需要有关此C代码的python版本的帮助: #define HostBusy_high 0x02 #define control_register 0x37a Out32 (control_register,(unsigned char)(Inp32(control_register) | HostBusy_high)); Out32和Inp32是位于inpout32.dll中的函数,用于连接并行端口。这些函数将十六进制值作为其参数。我试图用python编写代码以获得所需的值,但
#define HostBusy_high 0x02
#define control_register 0x37a
Out32 (control_register,(unsigned char)(Inp32(control_register) | HostBusy_high));
Out32和Inp32是位于inpout32.dll中的函数,用于连接并行端口。这些函数将十六进制值作为其参数。我试图用python编写代码以获得所需的值,但这不是我得到的。请参见下面的python版本:
from ctypes import windll
#parallel port instance
p_port = windll.inpout32
HostBusy_high = 0x02
control_register = 0x37a
write_data = write(p_port(Inp32(control_register) | HostBusy_high))
Out32 (control_register,write_data))
使用上面的代码,我似乎没有得到我想要的值。我怀疑它是未签名的值
谢谢也许你应该得到你的值的模256。那么它肯定是没有签名的。示例:
>>> 12 % 256
12
>>> 1022 % 256
254
>>> -1 % 256
255
>>> -127 % 256
129
也许你应该得到你的值的模256。那么它肯定是没有签名的。示例:
>>> 12 % 256
12
>>> 1022 % 256
254
>>> -1 % 256
255
>>> -127 % 256
129
这取决于为什么需要未签名的字符。对于大多数情况,您将只使用Python整数。如果实际需要一个单字节数据,可以使用Python的struct.pack从整数中生成一个单字节字符串
一般来说,如果不充分了解源语言和目标语言,以及正在翻译的代码体,就无法通过逐行逐行的语言间代码直译获得好的结果 取决于需要无符号字符的原因。对于大多数情况,您将只使用Python整数。如果实际需要一个单字节数据,可以使用Python的struct.pack从整数中生成一个单字节字符串
一般来说,如果不充分了解源语言和目标语言,以及正在翻译的代码体,就无法通过逐行逐行的语言间代码直译获得好的结果 您可以在ctypes库中找到与
c_ubyte
数据类型匹配的内容。查看是否使用值填充该类型的对象,并确定其是否合适
其余类型以表格形式列出
您可以在ctypes库中找到与
c_ubyte
数据类型匹配的内容。查看是否使用值填充该类型的对象,并确定其是否合适
其余类型以表格形式列出
需要更多的上下文。你想用字节值做什么?user680730,恕我冒犯,但考虑到你的@stackoverflow历史记录,我建议你先阅读Python教程,只有在某些内容仍然不清楚时才提问。给你:需要更多的背景。你想用字节值做什么?user680730,恕我冒犯,但考虑到你的@stackoverflow历史记录,我建议你先阅读Python教程,只有在某些内容仍然不清楚时才提问。给你:在这种情况下,也许他应该给一个变量赋值,取值范围为0..255?:)我不知道他想要什么。也许他得到的值介于-128和127之间,当值为负时,他需要这两个值的补码。但不确定。在这种情况下,也许他应该给变量赋值,取值范围为0..255?:)我不知道他想要什么。也许他得到的值介于-128和127之间,当值为负时,他需要这两个值的补码。不过我不确定。