NumPy 位运算符

2024 年 8 月 29 日 | 阅读 3 分钟

Numpy 提供了以下位运算符。

序号运算符描述
1bitwise_and用于计算对应数组元素之间的按位与运算。
2bitwise_or用于计算对应数组元素之间的按位或运算。
3invert用于计算数组元素的按位取反运算。
4left_shift用于将元素的二进制表示的位向左移位。
5right_shift用于将元素的二进制表示的位向右移位。

bitwise_and 运算

NumPy 提供了 bitwise_and() 函数,用于计算两个操作数的按位与运算。

按位与运算是对操作数二进制表示的对应位执行的。如果操作数中的对应位都设置为 1,则 AND 结果中的结果位才设置为 1,否则设置为 0。

示例

输出

binary representation of a: 0b1010
binary representation of b: 0b1100
Bitwise-and of a and b:  8

AND 真值表

当且仅当两个位都为 1 时,两个位的 AND 结果才为 1,否则为 0。

ABAND (A, B)
000
010
100
111

bitwise_or 运算符

NumPy 提供了 bitwise_or() 函数,用于计算两个操作数的按位或运算。

按位或运算是对操作数二进制表示的对应位执行的。如果操作数中的对应位之一设置为 1,则 OR 结果中的结果位将设置为 1;否则将设置为 0。

示例

输出

binary representation of a: 0b110010
binary representation of b: 0b1011010
Bitwise-or of a and b:  122

或真值表

如果其中一个位为 1,则两个位的 OR 结果为 1,否则为 0。

AB或 (A, B)
000
011
101
111

取反运算

用于计算给定操作数的按位取反运算。如果函数中传递了带符号整数,则返回 2 的补码。

请看以下示例。

示例

输出

Binary representation: 00010100
[235]
Binary representation:  11101011

它将操作数二进制表示中的位向左移动指定的位置。从右侧追加相同数量的 0。考虑以下示例。

示例

输出

left shift of 20 by 3 bits 160
Binary representation of 20 in 8 bits 00010100
Binary representation of 160 in 8 bits 10100000

右移运算

它将操作数二进制表示中的位向右移动指定的位置。从左侧追加相同数量的 0。考虑以下示例。

示例

输出

left shift of 20 by 3 bits 2
Binary representation of 20 in 8 bits 00010100
Binary representation of 160 in 8 bits 10100000