NumPy包中,可用位操做函數進行位運算。python
要對數值進行位與運算,可使用bitwise_and()
函數。shell
示例數組
import numpy as np print ('\n13與17的二進制表示:') a,b = 13,17 print (bin(a)) print (bin(b)) print ('\n13與17相與:') c = np.bitwise_and(13, 17) print (bin(c))
輸出函數
13與17的二進制表示: 0b1101 0b10001 13與17相與: 0b1
要對數值進行位或運算,可使用bitwise_or()
函數。ui
示例code
import numpy as np print ('\n13與17的二進制表示:') a,b = 13,17 print (bin(a)) print (bin(b)) print ('\n13與17相或:') c = np.bitwise_or(13, 17) print (bin(c))
輸出排序
13與17的二進制表示: 0b1101 0b10001 13與17相或: 0b11101
要對數值進行位非運算,可使用invert()
函數。字符串
示例get
import numpy as np print ('13的位非運算結果,其中ndarray的dtype爲uint8:' ) 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
注意,binary_repr()
函數的做用是: 返回數值的二進制表示,二進制位數能夠經過width
指定。
left_shift()
函數對數值進行左移位運算:二進制數值向左移位,右邊補0。
示例
import numpy as np print ('對10左移位2位:' ) print (np.left_shift(10,2) ) print ('\n' ) print ('10的二進制:' ) print (np.binary_repr(10, width = 8) ) print ('\n') print ('40的二進制:' ) print (np.binary_repr(40, width = 8) )
輸出
對10左移位2位: 40 10的二進制: 00001010 40的二進制: 00101000
'00001010'左移兩位,右面補兩個0。
right_shift()
函數對數值進行右移位運算:二進制數值向右移位,左邊補0。
示例
import numpy as np print ('對40右移位2位:') 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))
輸出
對40右移位2位: 10 40的二進制: 00101000 10的二進制: 00001010
'00101000'右移兩位,左面補兩個0。
NumPy包中,可用位操做函數進行位運算。
要對數值進行位與運算,可使用bitwise_and()
函數。
示例
import numpy as np print ('\n13與17的二進制表示:') a,b = 13,17 print (bin(a)) print (bin(b)) print ('\n13與17相與:') c = np.bitwise_and(13, 17) print (bin(c))
輸出
13與17的二進制表示: 0b1101 0b10001 13與17相與: 0b1
要對數值進行位或運算,可使用bitwise_or()
函數。
示例
import numpy as np print ('\n13與17的二進制表示:') a,b = 13,17 print (bin(a)) print (bin(b)) print ('\n13與17相或:') c = np.bitwise_or(13, 17) print (bin(c))
輸出
13與17的二進制表示: 0b1101 0b10001 13與17相或: 0b11101
要對數值進行位非運算,可使用invert()
函數。
示例
import numpy as np print ('13的位非運算結果,其中ndarray的dtype爲uint8:' ) 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
注意,binary_repr()
函數的做用是: 返回數值的二進制表示,二進制位數能夠經過width
指定。
left_shift()
函數對數值進行左移位運算:二進制數值向左移位,右邊補0。
示例
import numpy as np print ('對10左移位2位:' ) print (np.left_shift(10,2) ) print ('\n' ) print ('10的二進制:' ) print (np.binary_repr(10, width = 8) ) print ('\n') print ('40的二進制:' ) print (np.binary_repr(40, width = 8) )
輸出
對10左移位2位: 40 10的二進制: 00001010 40的二進制: 00101000
'00001010'左移兩位,右面補兩個0。
right_shift()
函數對數值進行右移位運算:二進制數值向右移位,左邊補0。
示例
import numpy as np print ('對40右移位2位:') 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))
輸出
對40右移位2位: 10 40的二進制: 00101000 10的二進制: 00001010
'00101000'右移兩位,左面補兩個0。