2024-04-25 02:07:41 发布
网友
我有一个接受'data'作为参数的函数。作为python的新手,我甚至不确定这是否是一种类型。你知道吗
我注意到当打印这种类型的东西时
b'h'
如果我把字母h编码了,这对我来说毫无意义。有没有办法在python中定义位,比如1或0。我猜b'h'一定是十六进制的?我有没有办法简单地定义一个8位字符串
bits1 = 10100000
你把一些不相关的事情混为一谈。你知道吗
首先,(在python3中),以b为前缀的引号是bytes类型,表示原始字节值的字符串。示例:
b
bytes
x = b'abc' print(type(x)) # will output `<class 'bytes'>`
这与str类型不同,后者是(Unicode)字符串。你知道吗
str
整数文本可以使用0b前缀用二进制表示,例如
0b
y = 0b10100000 print(y) # Will output 160
据我所知,“数据”不是一种类型。您的函数(可能)接受您传递给它的任何内容,无论其类型如何。你知道吗
现在,b'h'表示“二进制序列映射到字符´h´的数字(int)”,这不是十六进制,而是一个可能有8位的数字(1字节,这是int和char的标准大小)。你知道吗
int
char
“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表示十进制)定义的基表示的二进制序列,而不是使用转义字符。你知道吗
b'\b01101000'
你把一些不相关的事情混为一谈。你知道吗
首先,(在python3中),以
b
为前缀的引号是bytes
类型,表示原始字节值的字符串。示例:这与
str
类型不同,后者是(Unicode)字符串。你知道吗整数文本可以使用
0b
前缀用二进制表示,例如据我所知,“数据”不是一种类型。您的函数(可能)接受您传递给它的任何内容,无论其类型如何。你知道吗
现在,
b'h'
表示“二进制序列映射到字符´h´的数字(int)”,这不是十六进制,而是一个可能有8位的数字(1字节,这是int
和char
的标准大小)。你知道吗“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表示十进制)定义的基表示的二进制序列,而不是使用转义字符。你知道吗相关问题 更多 >
编程相关推荐