簡體   English   中英

將二進制字符串轉換為二進制文字

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM