日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

菜鸟教程python位运算符_NumPy 位运算

發(fā)布時(shí)間:2025/3/15 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 菜鸟教程python位运算符_NumPy 位运算 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

NumPy 位運(yùn)算

NumPy "bitwise_" 開頭的函數(shù)是位運(yùn)算函數(shù)。

NumPy 位運(yùn)算包括以下幾個(gè)函數(shù):

函數(shù)

描述

bitwise_and

對(duì)數(shù)組元素執(zhí)行位與操作

bitwise_or

對(duì)數(shù)組元素執(zhí)行位或操作

invert

按位取反

left_shift

向左移動(dòng)二進(jìn)制表示的位

right_shift

向右移動(dòng)二進(jìn)制表示的位

注:也可以使用 "&"、 "~"、 "|" 和 "^" 等操作符進(jìn)行計(jì)算。

bitwise_and

bitwise_and() 函數(shù)對(duì)數(shù)組中整數(shù)的二進(jìn)制形式執(zhí)行位與運(yùn)算。

實(shí)例

importnumpyasnpprint('13 和 17 的二進(jìn)制形式:')a,b=13,17print(bin(a),bin(b))print('\n')print('13 和 17 的位與:')print(np.bitwise_and(13,17))

輸出結(jié)果為:

13 和 17 的二進(jìn)制形式:

0b1101 0b10001

13 和 17 的位與:

1

以上實(shí)例可以用下表來說明:

1

1

0

1

AND

1

0

0

0

1

運(yùn)算結(jié)果

0

0

0

0

1

位與操作運(yùn)算規(guī)律如下:

A

B

AND

1

1

1

1

0

0

0

1

0

0

0

0

bitwise_or

bitwise_or()函數(shù)對(duì)數(shù)組中整數(shù)的二進(jìn)制形式執(zhí)行位或運(yùn)算。

實(shí)例

importnumpyasnpa,b=13,17print('13 和 17 的二進(jìn)制形式:')print(bin(a),bin(b))print('13 和 17 的位或:')print(np.bitwise_or(13,17))

輸出結(jié)果為:

13 和 17 的二進(jìn)制形式:

0b1101 0b10001

13 和 17 的位或:

29

以上實(shí)例可以用下表來說明:

1

1

0

1

OR

1

0

0

0

1

運(yùn)算結(jié)果

1

1

1

0

1

位或操作運(yùn)算規(guī)律如下:

A

B

OR

1

1

1

1

0

1

0

1

1

0

0

0

invert

invert() 函數(shù)對(duì)數(shù)組中整數(shù)進(jìn)行位取反運(yùn)算,即 0 變成 1,1 變成 0。

對(duì)于有符號(hào)整數(shù),取該二進(jìn)制數(shù)的補(bǔ)碼,然后 +1。二進(jìn)制數(shù),最高位為0表示正數(shù),最高位為 1 表示負(fù)數(shù)。

看看 ~1 的計(jì)算步驟:

將1(這里叫:原碼)轉(zhuǎn)二進(jìn)制 = 00000001

按位取反 =11111110

發(fā)現(xiàn)符號(hào)位(即最高位)為1(表示負(fù)數(shù)),將除符號(hào)位之外的其他數(shù)字取反 = 10000001

末位加1取其補(bǔ)碼 = 10000010

轉(zhuǎn)換回十進(jìn)制 = -2

表達(dá)式二進(jìn)制值(2 的補(bǔ)數(shù))十進(jìn)制值

500000000 00000000 00000000 00000105

~511111111 11111111 11111111 11111010

-6

實(shí)例

importnumpyasnpprint('13 的位反轉(zhuǎn),其中 ndarray 的 dtype 是 uint8:')print(np.invert(np.array([13],dtype=np.uint8)))print('\n')# 比較 13 和 242 的二進(jìn)制表示,我們發(fā)現(xiàn)了位的反轉(zhuǎn)print('13 的二進(jìn)制表示:')print(np.binary_repr(13,width=8))print('\n')print('242 的二進(jìn)制表示:')print(np.binary_repr(242,width=8))

輸出結(jié)果為:

13 的位反轉(zhuǎn),其中 ndarray 的 dtype 是 uint8:

[242]

13 的二進(jìn)制表示:

00001101

242 的二進(jìn)制表示:

11110010

left_shift

left_shift() 函數(shù)將數(shù)組元素的二進(jìn)制形式向左移動(dòng)到指定位置,右側(cè)附加相等數(shù)量的 0。

實(shí)例

importnumpyasnpprint('將 10 左移兩位:')print(np.left_shift(10,2))print('\n')print('10 的二進(jìn)制表示:')print(np.binary_repr(10,width=8))print('\n')print('40 的二進(jìn)制表示:')print(np.binary_repr(40,width=8))# '00001010' 中的兩位移動(dòng)到了左邊,并在右邊添加了兩個(gè) 0。

輸出結(jié)果為:

將 10 左移兩位:

40

10 的二進(jìn)制表示:

00001010

40 的二進(jìn)制表示:

00101000

right_shift

right_shift() 函數(shù)將數(shù)組元素的二進(jìn)制形式向右移動(dòng)到指定位置,左側(cè)附加相等數(shù)量的 0。

實(shí)例

importnumpyasnpprint('將 40 右移兩位:')print(np.right_shift(40,2))print('\n')print('40 的二進(jìn)制表示:')print(np.binary_repr(40,width=8))print('\n')print('10 的二進(jìn)制表示:')print(np.binary_repr(10,width=8))# '00001010' 中的兩位移動(dòng)到了右邊,并在左邊添加了兩個(gè) 0。

輸出結(jié)果為:

將 40 右移兩位:

10

40 的二進(jìn)制表示:

00101000

10 的二進(jìn)制表示:

00001010

總結(jié)

以上是生活随笔為你收集整理的菜鸟教程python位运算符_NumPy 位运算的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。