代码之家  ›  专栏  ›  技术社区  ›  Flying Thunder

Python-为什么'int(x,2)`只能用于字符串,而不能用于整数?

  •  1
  • Flying Thunder  · 技术社区  · 7 年前

    test = 1011
    test2 = int(test, 2)
    print(test2)
    

    会抛出一个错误

    int() can't convert non-string with explicit base
    

    test 进入之内 str() ,因为int转换需要一个字符串作为输入。

    2 回复  |  直到 7 年前
        1
  •  3
  •   Jack Aidley    7 年前

    因为把它应用于整数是没有意义的

    test 是一个数字。它没有根据。所有的数字都是这样的:二进制0x1011、十进制11和十六进制0x0B是 完全相同的数字 . 这三种写法只是写同一件事的不同方式,就像用汉字写3一样。当然,在计算机内部,用二进制表示的数字。 0b1111110011 -但可以在任何你喜欢的基地展示。只有在将数字转换为字符串或从字符串转换数字时,基才是相关的。

    测试

    test = 0b1011
    
        2
  •  2
  •   Matthieu Brucher    7 年前

    如果你有一个整数,没有相关的基数,它是一个数字。然后,您可以将它表示为以2、16或10为基数的字符串(或任何其他您想要的字符串)。