【问题标题】:Binary shift on string in PythonPython中字符串的二进制移位
【发布时间】:2019-08-02 05:39:52
【问题描述】:

给定一个二进制字符串,将其移动给定的数量。

我无法理解为什么此代码会失败,我将字符串转换为二进制然后执行移位,但是对于

我认为我错误地转换了二进制字符串,但不知道该怎么做。


def insertt(num, numb, shift):

  num = bin(int(num, 2) << shift)
  numb = bin(int(numb))
  print(bin(int(num, 2) | bin(int(numb, 2))



a = '10000000000'
b = '1001'
c = 2
insertt(a, b, c)


预期的结果只是转变。

谢谢

【问题讨论】:

  • bin 返回一个字符串。我猜你想要bin(int(a, 2) &lt;&lt; 2)(即在int 上进行移位,然后转换为二进制字符串表示)。或者你想做一个循环移位?请显示一些示例输入/输出。
  • 我正在尝试 1- 将字符串转换为二进制数,2 对其进行逻辑左移(非循环)

标签: python binary


【解决方案1】:

你必须在使用 bin 之前转换你的二进制字符串:

def insertt(num, shift):

  num = bin(int(num, 2) << shift)
  print(num)

a = '10000000000'
c = 2
insertt(a, c)

# output: 0b1000000000000

【讨论】:

    猜你喜欢
    • 2021-11-05
    • 1970-01-01
    • 2021-11-09
    • 2015-11-21
    • 1970-01-01
    • 2023-01-18
    • 2014-01-19
    • 2017-04-05
    • 2010-10-16
    相关资源
    最近更新 更多