Python定义bitwi

2024-04-25 02:07:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个接受'data'作为参数的函数。作为python的新手,我甚至不确定这是否是一种类型。你知道吗

我注意到当打印这种类型的东西时

b'h' 

如果我把字母h编码了,这对我来说毫无意义。有没有办法在python中定义位,比如1或0。我猜b'h'一定是十六进制的?我有没有办法简单地定义一个8位字符串

bits1 = 10100000

Tags: 函数字符串类型编码data参数定义字母
2条回答

你把一些不相关的事情混为一谈。你知道吗

首先,(在python3中),以b为前缀的引号是bytes类型,表示原始字节值的字符串。示例:

x = b'abc'
print(type(x))     # will output `<class 'bytes'>`

这与str类型不同,后者是(Unicode)字符串。你知道吗

整数文本可以使用0b前缀用二进制表示,例如

y = 0b10100000
print(y)           # Will output 160

据我所知,“数据”不是一种类型。您的函数(可能)接受您传递给它的任何内容,无论其类型如何。你知道吗

现在,b'h'表示“二进制序列映射到字符´h´的数字(int)”,这不是十六进制,而是一个可能有8位的数字(1字节,这是intchar的标准大小)。你知道吗

“h”的ASCII码是104(十进制),用二进制写,即b'\b01101000',或用十六进制b'\x68'。你知道吗

因此,我认为您正在寻找的答案是:如果您想从二进制表示中编码一个8位int,只需键入b'\b01101000'(对于104)。我建议改为使用hexa,以使其更加紧凑和可读。在六边形中,每四位组成一个从0到f的符号,这些符号可以每四位串接一次,形成一个较大的数字。因此位序列01101000被写入b'\b0110\b1000'或b'\x6\x8',可以被写入b'\x68'。引号前面的b告诉python将字符串解释为以\b或\x(或\d表示十进制)定义的基表示的二进制序列,而不是使用转义字符。你知道吗

相关问题 更多 >