【问题标题】:Int in base 2 to binary string python [duplicate]以 2 为基数的 Int 到二进制字符串 python [重复]
【发布时间】:2015-11-18 09:02:59
【问题描述】:

所以我在 python x = int(v,base=2) 中有这个操作,它将 v 作为二进制字符串。与之相反的操作是什么? 例如,给定1101000110111111011001100001,它将返回219936353,所以我想从219936353 数字中获取这个二进制字符串。 谢谢

【问题讨论】:

    标签: python casting binary int sage


    【解决方案1】:

    试试 bin() 函数。

    bin(yourNumber)[2:]
    

    将为您提供包含数字位的字符串。

    【讨论】:

    • 谢谢!如果我用这个字符串操作,0b 从一开始就不会干扰操作,对吧?
    • 具体的操作,您要执行什么操作?
    • @deuseux12 您可以使用print bin(219936353)[2:].zfill(8) 删除该0b
    • 好的。该二进制字符串是从单词“hola”到二进制的转换。所以我必须将二进制字符串转换为单词。如果它有任何问题,我将使用 Borja 解决方案将0b 取出。谢谢
    • @deuseux12,这不起作用:int(bin(1), 10)。请参阅我的第一个正确解决方案的答案:int('{:b}'.format(1), 10) => 1
    【解决方案2】:
    >>> bin(219936353)
    '0b1101000110111111011001100001'
    

    【讨论】:

    【解决方案3】:
    num = 219936353
    print("{:b}".format(num))
    
    --output:--
    1101000110111111011001100001
    

    其他的解决方法都错了:

    num = 1
    string = bin(1)
    result = int(string, 10)
    print(result)
    
    --output:--
    Traceback (most recent call last):
      File "1.py", line 4, in <module>
        result = int(string, 10)
    ValueError: invalid literal for int() with base 10: '0b1'
    

    你必须这样做:

    num = 1
    string = bin(1)
    result = int(string[2:], 10)
    print(result)  #=> 1
    

    【讨论】:

      猜你喜欢
      • 2010-10-16
      • 2012-02-14
      • 2020-08-03
      • 2012-11-22
      • 2017-06-10
      • 1970-01-01
      • 1970-01-01
      • 2015-11-21
      相关资源
      最近更新 更多