📌  相关文章
📜  数字位数的按位运算(1)

📅  最后修改于: 2023-12-03 15:39:56.729000             🧑  作者: Mango

数字位数的按位运算

在计算机科学中,按位运算是一种在二进制数位级别上操作二进制数值的运算。这些运算符作用于每一个比特,即二进制数的每一位。本文将介绍数字位数的按位运算及其常用的运算符。

按位运算符
按位与(&)

按位与运算符(&)是双目运算符。它的功能是参与运算的两数各对应的二进位相与。换言之,即把两数的二进制数按位进行比较,都为1时,结果为1,否则为0。其运算规律如下:

0 & 0 = 0
0 & 1 = 0
1 & 0 = 0
1 & 1 = 1

示例代码:

a = 60    # 二进制为 0011 1100
b = 13    # 二进制为 0000 1101

c = a & b  # 二进制为 0000 1100
print("a & b =", c)    # 输出结果为 12
按位或(|)

按位或运算符(|)是双目运算符。它的功能是参加运算的两数各对应的二进位相或。换言之,即把两数的二进制数按位进行比较,只要其中一个为1时,结果为1,否则为0。其运算规律如下:

0 | 0 = 0
0 | 1 = 1
1 | 0 = 1
1 | 1 = 1

示例代码:

a = 60    # 二进制为 0011 1100
b = 13    # 二进制为 0000 1101

c = a | b  # 二进制为 0011 1101
print("a | b =", c)    # 输出结果为 61
按位异或(^)

按位异或运算符(^)是双目运算符。它的功能是参加运算的两数各对应的二进位相异或。换言之,即把两数的二进制数按位进行比较,相同为0,不同为1。其运算规律如下:

0 ^ 0 = 0
0 ^ 1 = 1
1 ^ 0 = 1
1 ^ 1 = 0

示例代码:

a = 60    # 二进制为 0011 1100
b = 13    # 二进制为 0000 1101

c = a ^ b  # 二进制为 0011 0001
print("a ^ b =", c)    # 输出结果为 49
按位取反(~)

按位取反运算符(~)是单目运算符。它的功能是参加运算的数对应二进制数取反,即把0变成1,把1变成0。其运算规律如下:

~0 = 1
~1 = 0

示例代码:

a = 60    # 二进制为 0011 1100

c = ~a     # 二进制为 1100 0011
print("~a =", c)    # 输出结果为 -61

在 Python 中,按位取反操作会反转二进制位并减去1,因此结果为负数。

左移(<<)

左移运算符(<<)是双目运算符,左移 n 位就是乘以 2 的 n 次方,其运算规律如下:

a << n = a * (2^n)

示例代码:

a = 10    # 二进制为 0000 1010

c = a << 2  # 二进制为 0010 1000
print("a << 2 =", c)    # 输出结果为 40
右移(>>)

右移运算符(>>)是双目运算符,右移 n 位就是除以 2 的 n 次方,其运算规律如下:

a >> n = a / (2^n)

示例代码:

a = 10    # 二进制为 0000 1010

c = a >> 2  # 二进制为 0000 0010
print("a >> 2 =", c)    # 输出结果为 2
总结

本文介绍了数字位数的按位运算及其常用的运算符,包括按位与、按位或、按位异或、按位取反、左移和右移。这些运算符在数字处理过程中起到了重要作用,程序员需要熟练掌握它们的使用。