Python相同为0不同为1的方法
时间: 2023-06-16 11:03:38 浏览: 66
可以使用异或运算符(^)来实现相同为0不同为1的功能。具体实现方式如下:
```python
a = 5
b = 3
c = a ^ b
print(c) # 输出 6
```
在上面的代码中,异或运算符将a和b转换成二进制位,然后比较每一个二进制位,如果相同则为0,不同则为1,最后将结果转换回十进制。因此,输出结果为6,表示5和3的二进制位不同的位置为2和1,转换为十进制即为6。
相关问题
Python中对比两个十进制数,输出相同为0,不同为1
可以将两个十进制数转化为二进制数,然后逐位进行比较。如果相同则为0,不同则为1。下面是一个简单的实现:
```python
def compare_decimals(num1, num2):
# 将十进制数转化为二进制数
bin1 = bin(num1)[2:]
bin2 = bin(num2)[2:]
# 将两个二进制数补齐到相同的位数
max_len = max(len(bin1), len(bin2))
bin1 = bin1.zfill(max_len)
bin2 = bin2.zfill(max_len)
# 逐位比较
result = ''
for i in range(max_len):
if bin1[i] == bin2[i]:
result += '0'
else:
result += '1'
return int(result, 2)
```
这个函数接收两个十进制数 `num1` 和 `num2`,返回它们的二进制数的逐位比较结果。比如:
```python
>>> compare_decimals(10, 5)
7
```
10 的二进制数是 `1010`,5 的二进制数是 `0101`。逐位比较结果为 `1111`,转化为十进制数为 7。
Python中计算十进制数的异或,如何输出相同为0,不同为1
在Python中,可以使用异或运算符 `^` 来计算十进制数的异或。异或运算符的规则是:两个二进制位相同则为0,不同则为1。因此,我们可以先将十进制数转换为二进制,再进行异或运算,最后将结果再转换回十进制输出。下面是一个简单的示例代码:
```python
a = 10
b = 5
c = a ^ b
print(bin(a)[2:].zfill(8))
print(bin(b)[2:].zfill(8))
print(bin(c)[2:].zfill(8))
```
输出结果为:
```
00001010
00000101
00001111
```
可以看到,10和5的二进制表示分别为 `00001010` 和 `00000101`,它们的异或结果为 `00001111`,即十进制的15。如果要输出相同为0,不同为1的格式,只需要将 `c` 转换为二进制后,再用字符串的替换方法将0替换为1,1替换为0即可:
```python
result = bin(c)[2:].zfill(8).replace('0', '2').replace('1', '0').replace('2', '1')
print(result)
```
输出结果为:
```
00001110
```
可以看到,结果为 `00001111` 的二进制形式被转换为了相同为0,不同为1的形式 `00001110`。