二进制数?

发布于 2021-01-29 15:01:00

我正在使用python shell来解决print命令在python中的工作方式。
当我输入

打印01
1
打印010
8
打印0100
64
打印030
24

这里发生了什么?只是基数2?为什么第二个位置的“一个”打印为8?如果不是二进制,应该不是2吗?

关注者
0
被浏览
96
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    以0开头的数字在Python 2中将其标记为八进制。这被认为是令人困惑,令人惊讶且不一致的,因为以0x开头会将其标记为十六进制。因此,在Python
    3中,以0开头无效,并且以0o开头得到八进制。您也可以从0b开始将其标记为二进制。

    >>> 10
    10
    >>> 0x10
    16
    >>> 0o10
    8
    >>> 0b10
    2
    >>> 010
      File "<stdin>", line 1
        010
          ^
    SyntaxError: invalid token
    

    0x,0o和0b也可在Python 2.6和Python 2.7中使用。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看