
面试考官邢老师为您分享以下优质知识
在Python中,表示二进制数主要有以下几种方法:
一、前缀表示法
二进制前缀
使用 `0b` 或 `0B` 开头表示二进制数,例如:
```python
binary_num = 0b101 等价于十进制的5
print(binary_num) 输出: 5
```
这种方法直接明确地标识了数字的进制。
八进制前缀
使用 `0o` 或 `0O` 开头表示八进制数,例如:
```python
octal_num = 0o34 等价于十进制的28
print(octal_num) 输出: 28
```
八进制数逢8进位,适用于需要紧凑表示的场景。
十六进制前缀
使用 `0x` 或 `0X` 开头表示十六进制数,例如:
```python
hexadecimal_num = 0xFF 等价于十进制的255
print(hexadecimal_num) 输出: 255
```
十六进制数逢16进位,常用于表示颜色代码等场景。
二、函数转换法
`bin()` 函数
将整数转换为二进制字符串,返回值以 `0b` 开头,例如:
```python
num = 13
binary_str = bin(num)
print(binary_str) 输出: 0b1101
```
若需去除前缀,可用切片操作:
```python
binary_str_without_prefix = binary_str[2:]
print(binary_str_without_prefix) 输出: 1101
```
`int()` 函数
支持将二进制字符串转换为整数,需指定基数为2,例如:
```python
binary_str = '1010'
decimal_num = int(binary_str, 2)
print(decimal_num) 输出: 10
```
三、手动转换法
通过除以2取余数,将整数转换为二进制字符串,例如:
```python
def int_to_binary(num):
if num == 0:
return '0'
binary_str = ''
while num >
0:
binary_str = str(num % 2) + binary_str
num = num // 2
return binary_str
num = 10
binary_str = int_to_binary(num)
print(binary_str) 输出: 1010
```
此方法适用于教学或特殊场景,但不如 `bin()` 函数便捷。
四、二进制运算
Python支持直接对二进制数进行位运算,例如:
```python
a = 60 二进制: 0011 1100
b = 13 二进制: 0000 1101
c = a & b 按位与,结果: 0000 1100 (12)
print(c) 输出: 12
```
常用运算符包括:
`&`(按位与)
`|`(按位或)
`^`(按位异或)
`~`(按位取反)
``(右移)
以上方法可根据具体需求灵活选择,前缀表示法简洁直观,函数转换法高效便捷,手动转换法适合学习理解。