Python 的內置函數 bin() 用於將一個整數轉換為以 "0b" 為前綴的二進制字符串表示形式。該函數接受一個整數作為參數,並返回其對應的二進制字符串。
函數語法
bin(x)
x:需要轉換的整數,可以是正整數、負整數或零。
返回值
返回一個字符串,表示給定整數的二進制形式,前綴為 "0b"。
示例
-
基本用法:
print(bin(10)) # 輸出: '0b1010' print(bin(-10)) # 輸出: '-0b1010' print(bin(0)) # 輸出: '0b0' -
與其他進制轉換函數的對比:
hex():轉換為十六進制字符串,前綴為 "0x"。-
oct():轉換為八進制字符串,前綴為 "0o"。print(hex(10)) # 輸出: '0xa' print(oct(10)) # 輸出: '0o12'
-
去掉前綴:
如果不需要 "0b" 前綴,可以通過字符串切片或format()函數實現:binary_str = bin(10)[2:] # 輸出: '1010' print(binary_str) # 使用 format 函數 print(format(10, 'b')) # 輸出: '1010' -
處理負數:
bin()函數會為負數添加 "-0b" 前綴:print(bin(-10)) # 輸出: '-0b1010' -
非整數輸入:
如果傳入的參數不是整數,bin()會拋出TypeError:print(bin(10.5)) # 拋出 TypeError: 'float' object cannot be interpreted as an integer
應用場景
-
位運算:
bin()函數常用於調試或分析位運算的結果:a = 5 # 二進制: 0101 b = 3 # 二進制: 0011 print(bin(a & b)) # 輸出: '0b1' (按位與) print(bin(a | b)) # 輸出: '0b111' (按位或) -
二進制數據處理:
在處理二進制數據或協議時,bin()可以幫助可視化數據:byte = 0xAB print(bin(byte)) # 輸出: '0b10101011' - 算法實現:
在某些算法中(如二進制搜索、位掩碼等),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'