当我编写Python时运行以下代码:
m = 010001110110100101110110011001010010000001101101011001010010000001100001011011100010000001000001
print "m = ", m
我收到了输出:
m = 7772840013437408857694157721741838884340237826753178459792706472536593002623651807233
发生了什么事? Python会自动从基数2转换为基数10吗?
答案 0 :(得分:2)
您使用m
开始0
。 Python认为它是八进制(参见this)
您所看到的是八进制数的十进制表示。
如果您希望将其作为二进制数字使用,我建议将其设置为str
,然后将其解析为int
,指定您在基础中解析某些内容2:
>>> m='0100011'
>>> int(m, 2)
35
答案 1 :(得分:0)
有点,它将以0开头的数字解释为八进制,所以它实际上不是二进制的。
在任何情况下,您都可以将整数输出为二进制,如下所示:
print "m = ", "{0:b}".format(m)