
肖老师为您分享以下优质知识
根据搜索结果,反推二进制的方法可分为以下两类,分别适用于不同场景:
一、二进制取反操作(按位取反)
使用 `~` 运算符直接取反,但需注意Python中负数表示为补码,需额外减一得到真实反码:
```python
num = 12
inverted_num = ~num - 1
print(inverted_num) 输出 -13
```
或通过异或法逐位取反:
```python
def bitwiseComplement(n):
if n == 0:
return 1
temp1 = 1
while temp1 < n:
n ^= temp1
temp1 = 1;
}
return result;
}
```
二、二进制数转换(十进制转二进制)
整数转换
采用除2取余法,反向排列余数:
```python
def decimalToBinary(n):
if n == 0:
return "0"
binary = ""
while n >
0:
binary = str(n % 2) + binary
n //= 2
return binary
print(decimalToBinary(5)) 输出 101
```
负数处理
补码转原码需先取反加一:
```python
def twosComplementToDecimal(binary_str):
if binary_str == '1':
inverted = ''.join('0' if bit == '1' else '1' for bit in binary_str)
return -((1