【问题标题】:converting string into binary integer in Python [duplicate]在Python中将字符串转换为二进制整数[重复]
【发布时间】:2012-05-29 00:38:31
【问题描述】:

我正在尝试将字符串转换为二进制整数:

string = "0b011" 
i = int(string)

但是这段代码引发了ValueError。但是,以下代码可以正常工作:

i = int(0b011)

但这里我传递的是二进制文字,而不是字符串。如何转换字符串?

【问题讨论】:

    标签: python


    【解决方案1】:

    试试这个代码:

    string = '0b011'
    i = int(string, 2) # value of i is 3
    

    它使用内置过程 int() 和可选的 base 参数,该参数指示要在转换中使用的基础 - 在这种情况下是两个,来自文档:

    base 参数给出转换的基数(默认为 10),可以是 [2, 36] 范围内的任何整数或零。如果 base 为零,则根据 string 的内容确定正确的基数;解释与整数文字相同。

    【讨论】:

      【解决方案2】:

      使用第二个可选参数(base),告诉int()该字符串属于base 2

      int(str[,base])
      
      >>> string = "0b011"
      >>> int(string,2)
      3
      

      【讨论】:

      • 第二个参数有什么作用?
      【解决方案3】:
      >>> from ast import literal_eval
      >>> literal_eval("0b011")
      3
      

      【讨论】:

        猜你喜欢
        • 2012-08-16
        • 1970-01-01
        • 1970-01-01
        • 2022-01-20
        • 2012-02-27
        • 1970-01-01
        • 2010-11-22
        • 1970-01-01
        相关资源
        最近更新 更多