![](/img/trans.png)
[英]How to convert a literal string representation of binary string to a binary string?
[英]Convert binary string to binary literal
我正在使用Python 3.2.2。
我正在尋找一個將二進制字符串(例如'0b1010'或'1010')轉換為二進制文字的函數,例如0b1010(不是字符串或十進制整數字面值)。
滾動我自己很容易,但我更喜歡使用標准功能或者已經完善的功能:我不想“重新發明輪子”。
無論如何,我很高興看到你們可能擁有的任何有效算法。
字符串是文字。
3>> bin(int('0b1010', 2))
'0b1010'
3>> bin(int('1010', 2))
'0b1010'
3>> 0b1010
10
3>> int('0b1010', 2)
10
請嘗試以下代碼:
#!python3
def fn(s, base=10):
prefix = s[0:2]
if prefix == '0x':
base = 16
elif prefix == '0b':
base = 2
return bin(int(s, base))
print(fn('15'))
print(fn('0xF'))
print(fn('0b1111'))
如果你確定你有s = "'0b010111'"
並且你只想獲得010111
,那么你可以將中間切成:
s = s[2:-1]
即從索引2到最后一個之前的索引。
但正如伊格納西奧和安提所寫的那樣,數字是抽象的。 0b11
是數字3的字符串表示之一,其中3
是數字3的另一個字符串表示。
repr()
總是返回一個字符串 。 使用repr
結果唯一可以做的就是repr
撇號 - 因為repr
將撇號添加到字符串表示中以強調它是字符串表示。 如果你想要一個數字的二進制表示(作為沒有撇號的字符串),那么bin()
是最終的答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.