博客 / 詳情

返回

Python 的內置函數 bin

Python 的內置函數 bin() 用於將一個整數轉換為以 "0b" 為前綴的二進制字符串表示形式。該函數接受一個整數作為參數,並返回其對應的二進制字符串。

函數語法

bin(x)
  • x:需要轉換的整數,可以是正整數、負整數或零。

返回值

返回一個字符串,表示給定整數的二進制形式,前綴為 "0b"。

示例

  1. 基本用法

    print(bin(10))   # 輸出: '0b1010'
    print(bin(-10))  # 輸出: '-0b1010'
    print(bin(0))    # 輸出: '0b0'
  2. 與其他進制轉換函數的對比

    • hex():轉換為十六進制字符串,前綴為 "0x"。
    • oct():轉換為八進制字符串,前綴為 "0o"。

      print(hex(10))   # 輸出: '0xa'
      print(oct(10))   # 輸出: '0o12'
  3. 去掉前綴
    如果不需要 "0b" 前綴,可以通過字符串切片或 format() 函數實現:

    binary_str = bin(10)[2:]  # 輸出: '1010'
    print(binary_str)
    
    # 使用 format 函數
    print(format(10, 'b'))    # 輸出: '1010'
  4. 處理負數
    bin() 函數會為負數添加 "-0b" 前綴:

    print(bin(-10))  # 輸出: '-0b1010'
  5. 非整數輸入
    如果傳入的參數不是整數,bin() 會拋出 TypeError

    print(bin(10.5))  # 拋出 TypeError: 'float' object cannot be interpreted as an integer

應用場景

  1. 位運算
    bin() 函數常用於調試或分析位運算的結果:

    a = 5  # 二進制: 0101
    b = 3  # 二進制: 0011
    print(bin(a & b))  # 輸出: '0b1' (按位與)
    print(bin(a | b))  # 輸出: '0b111' (按位或)
  2. 二進制數據處理
    在處理二進制數據或協議時,bin() 可以幫助可視化數據:

    byte = 0xAB
    print(bin(byte))  # 輸出: '0b10101011'
  3. 算法實現
    在某些算法中(如二進制搜索、位掩碼等),bin() 可以輔助調試或驗證邏輯。

注意事項

  • bin() 只能處理整數,其他類型(如浮點數、字符串)會引發錯誤。
  • 返回的字符串包含 "0b" 前綴,需要時可以通過切片去除。
  • 負數的二進制表示是補碼形式,但 bin() 直接返回帶符號的二進制字符串。

替代方案

如果需要更靈活的二進制格式化,可以使用 format() 函數或 f-string

# 使用 format
print(format(10, '#b'))  # 輸出: '0b1010'
print(format(10, 'b'))   # 輸出: '1010'

# 使用 f-string
a = 10
print(f"{a:#b}")  # 輸出: '0b1010'
print(f"{a:b}")   # 輸出: '1010'
user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.