位操作
优质
小牛编辑
132浏览
2023-12-01
通过np.bitwise_and()
函数对输入数组中的整数的二进制表示的相应位执行位与运算。
例子
输出如下:
13 和 17 的二进制形式:
0b1101 0b10001
13 和 17 的位与:
1
你可以使用下表验证此输出。 考虑下面的位与真值表。
通过np.bitwise_or()
函数对输入数组中的整数的二进制表示的相应位执行位或运算。
import numpy as np
a,b = 13,17
print '13 和 17 的二进制形式:'
print bin(a), bin(b)
print '13 和 17 的位或:'
输出如下:
你可以使用下表验证此输出。 考虑下面的位或真值表。
此函数计算输入数组中整数的位非结果。 对于有符号整数,返回补码。
例子
import numpy as np
print np.invert(np.array([13], dtype = np.uint8))
print '\n'
# 比较 13 和 242 的二进制表示,我们发现了位的反转
print '13 的二进制表示:'
print np.binary_repr(13, width = 8)
print '\n'
print '242 的二进制表示:'
print np.binary_repr(242, width = 8)
输出如下:
13 的位反转,其中 ndarray 的 dtype 是 uint8:
[242]
13 的二进制表示:
00001101
242 的二进制表示:
11110010
函数将数组元素的二进制表示中的位向左移动到指定位置,右侧附加相等数量的 0。
例如,
输出如下:
将 10 左移两位:
10 的二进制表示:
00001010
40 的二进制表示:
00101000
numpy.right_shift()
函数将数组元素的二进制表示中的位向右移动到指定位置,左侧附加相等数量的 0。
import numpy as np
print '将 40 右移两位:'
print np.right_shift(40,2)
print '\n'
print '40 的二进制表示:'
print np.binary_repr(40, width = 8)
print '\n'
print '10 的二进制表示:'
print np.binary_repr(10, width = 8)
# '00001010' 中的两位移动到了右边,并在左边添加了两个 0。
输出如下: