如何在python中绕过base8数字标识?

2024-09-30 01:23:09 发布

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

我在网上看到一个exercide操作二进制序列(比如用一个0替换每一个,用一个0替换每一个),在代码的某个地方,我想这样打印0101:

seq = 0101
print seq

结果是65而不是0101,我发现这是因为整数行乞中的0表示一个以8为基数的数字,我怎么能绕过这个呢?你知道吗


Tags: 代码地方二进制序列数字整数seq基数
3条回答

您应该使用字符串"0101"或二进制0b0101
字符串将打印0101,二进制将打印它所表示的二进制数(5)。你知道吗

Python有二进制文本,但需要在它们前面加上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

相关问题 更多 >

    热门问题