2024-09-30 01:23:09 发布
网友
我在网上看到一个exercide操作二进制序列(比如用一个0替换每一个,用一个0替换每一个),在代码的某个地方,我想这样打印0101:
seq = 0101 print seq
结果是65而不是0101,我发现这是因为整数行乞中的0表示一个以8为基数的数字,我怎么能绕过这个呢?你知道吗
您应该使用字符串"0101"或二进制0b0101。 字符串将打印0101,二进制将打印它所表示的二进制数(5)。你知道吗
"0101"
0b0101
0101
5
Python有二进制文本,但需要在它们前面加上0b。所以你的例子应该是这样的:
0b
> seq = 0b0101 > print seq 5
也可以将二进制文件打印回:
> print bin(seq) 0b101
你不能。当你输入0101时,它会自动转换成oct(101)的值。您可以将其另存为二进制:
seq = 0b101
但这并不能保持领先的0。你最好的办法是把它保存为一个字符串。你知道吗
seq = "0101" swapped = ''.join(['1' if b in '0' else '0' for b in seq]) # or maketrans print(swapped) # => 1010 print(int(swapped, 2)) # => 10
您应该使用字符串
"0101"
或二进制0b0101
。字符串将打印
0101
,二进制将打印它所表示的二进制数(5
)。你知道吗Python有二进制文本,但需要在它们前面加上
0b
。所以你的例子应该是这样的:也可以将二进制文件打印回:
你不能。当你输入0101时,它会自动转换成oct(101)的值。您可以将其另存为二进制:
但这并不能保持领先的0。你最好的办法是把它保存为一个字符串。你知道吗
相关问题 更多 >
编程相关推荐