【发布时间】:2015-11-18 09:02:59
【问题描述】:
所以我在 python x = int(v,base=2) 中有这个操作,它将 v 作为二进制字符串。与之相反的操作是什么?
例如,给定1101000110111111011001100001,它将返回219936353,所以我想从219936353 数字中获取这个二进制字符串。
谢谢
【问题讨论】:
标签: python casting binary int sage
所以我在 python x = int(v,base=2) 中有这个操作,它将 v 作为二进制字符串。与之相反的操作是什么?
例如,给定1101000110111111011001100001,它将返回219936353,所以我想从219936353 数字中获取这个二进制字符串。
谢谢
【问题讨论】:
标签: python casting binary int sage
试试 bin() 函数。
bin(yourNumber)[2:]
将为您提供包含数字位的字符串。
【讨论】:
0b 从一开始就不会干扰操作,对吧?
print bin(219936353)[2:].zfill(8) 删除该0b。
0b 取出。谢谢
int(bin(1), 10)。请参阅我的第一个正确解决方案的答案:int('{:b}'.format(1), 10) => 1。
>>> bin(219936353)
'0b1101000110111111011001100001'
【讨论】:
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
【讨论】: