Python按位异或运算符

Python按位异或运算符

二进制语言是计算机的语言。计算机的所有内部机制都是基于位来进行的。按位运算符是一组运算符,允许程序员对整数执行按位操作。这些运算符允许程序员操作计算机中的低级数据。Python中总共有六个按位运算符:

  1. 按位与
  2. 按位或
  3. 按位非
  4. 按位异或
  5. 按位右移
  6. 按位左移

本文讨论了带有示例的按位异或运算符。

  • 当我们对两个操作数应用按位运算符时,整数值会被转换为二进制形式,即位。
  • 然后,运算符在每个单独的位上逐位执行操作。
  • 操作完成后,将二进制数转换为十进制形式,并将其作为输出返回。

    现在,让我们了解按位异或运算的操作:

  • 它被称为“异或”。它从“或”条件中排除了1 | 1 -> 1的情况。

  • 它是一个二进制运算符,作用于两个操作数之间。
  • 表示:a ^ b ,其中’a’和’b’是两个操作数。
  • 返回值: 当在两个整数之间执行时,返回一个整数;当在两个布尔值之间执行时,返回一个布尔值。

    操作:

  1. 给定的两个整数被转换为二进制形式。
  2. 在这两个二进制符号中:
  • 如果两个相应的位相同 – (1 ^ 1), (0 ^ 0),返回0。
  • 如果两个相应的位不同 – (1 ^ 0), (0 ^ 1),返回1。

    • 在对所有位执行异或操作后,将得到的二进制数转换回十进制并返回。

    异或的真值表:

Bit 1 (operand 1) Bit 2 (operand 2) Return value
1 1 0
0 0 0
1 0 1
0 1 1

让我们使用一个示例来理解这个概念:

如果我们想要执行:

3 ^ 4:

1. 两个整数都被转换为二进制形式:

3 -> 0 1 1

4 -> 1 0 0

2. 现在,按位应用异或运算:

Python按位异或运算符

3. 最后,结果二进制数再转换回十进制形式。

1 1 1 表示 7

4. 输出 -> 7

3 ^ 4 – > 7

现在,对于相同的操作数,让我们写一个用于异或的代码:

a = int (input ("Enter the value of a: "))
b = int (input ("Enter the value of b: "))
print ("Bitwise xor: ", a ^ b)

输出:

Python按位异或运算符

关于布尔值

我们可以对布尔值进行xor运算。当我们对两个整数进行操作时,1等同于布尔值True,0等同于布尔值False。

真值表:

Operand 1 Operand 2 Operand 1 ^ Operand 2
True True False
False False False
True False True
False True True
a = True
b = False
c = True
d = False
print ("True  ^ True :", a ^ c)
print ("True  ^ False:", a ^ b)
print ("False ^ True :", b ^ a)
print ("False ^ False:", b ^ d)

输出:

Python按位异或运算符

输出的结构:

  • 如果我们对a和b执行异或操作 -> a^b。结果是得到某个整数c **(a^b – > c) ** 那么,
  1. 如果我们对c和a执行异或操作,得到的输出将是b -> **c^a – > b **
  2. 如果我们对c和b执行异或操作,得到的输出将是a -> **c^b – > a **

让我们来看上面的示例:

Python按位异或运算符

代码:

a = int (input ("Enter the value of a: "))
b = int (input ("Enter the value of b: "))
c = a ^ b
print ("a ^ b -> ", a, "^", b, "=", c)
print ("c ^ a -> ", c, "^", a, "=", c ^ a)
print ("c ^ b -> ", c, "^", b, "=", c ^ b)

输出:

Python按位异或运算符

理解:

如果 a ^ b -> c

那么,

c ^ a -> b

c ^ b -> a

  • 如果我们知道输出和一个操作数,我们可以使用这个关系找到另一个操作数。
  • 这个关系只有在异或运算中才可能存在,因为它的真值表如此。

xor在密码学中的作用

上述关系在密码学模型中起到了异或一个小角色。

  • 如果一个人’A’想要将一个数字编码的消息机密地发送给另一个人’B’,他需要一个简单的掩码来隐藏编码的消息。
  • A和B之间事先知道彼此的秘密密钥。
  • 现在,A将消息与秘密密钥进行异或,并将其发送给B。
  • 收到后,B可以再次使用接收到的异或结果和秘密密钥进行异或运算,从而获得消息。

示例:

A想要将消息3发送给B,他们的秘密密钥是4

3 ^ 4 -> 5。

A将5发送给B。

B已经知道秘密密钥是4。

他将再次使用异或解密消息:

5 ^ 4 -> 3

消息成功接收。

  • 该方法是最简单的,因此也是最弱的加密方法。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程