文章面向?qū)ο螅簩υ砗途幊滩淮笥信d趣,只是需要用python實現(xiàn)一些運算功能的非計算機學(xué)生或從業(yè)者。大佬慎看防止血壓拉高
x=~x&0xFF
(資料圖片僅供參考)
num是一個不大于255的十進制正數(shù)(負數(shù)的我不需要,所以我也沒研究)
計算結(jié)果也是十進制的數(shù)
&右邊的0xFF會決定計算結(jié)果的比特位。如果要得到正確的計算結(jié)果,兩邊的數(shù)據(jù)比特位應(yīng)該相同
例如1000對應(yīng)的十六進制是0xFC17,16比特位的,這時候求反就應(yīng)該改成
x=~x&0xFFFF
例如求58的反:
當x大于255時,想要得到正確的數(shù)字,就要修改一下代碼
把0xFF換成0xFFFF或者更高,取決于x這個數(shù)占用的比特位。
(C語言基礎(chǔ)會講的知識,數(shù)據(jù)精度問題)
總之就是&兩邊的比特位要對應(yīng)
**如果&右邊保持為0xFF,但x大于了255,得到的結(jié)果則只有低位(如下圖)
**
而實際上1000取反應(yīng)該得到的十六進制表示是 ‘0xFC 17’
把完整的16比特位的FC17截斷剩下17
(之所以這里用十六進制表示,是因為&右邊對應(yīng)的是16進制,這樣看會更清楚。實際上取反運算是根據(jù)二進制表示運行的,那些也不重要,反正知道可以這樣算就OK啦!)
Python的按位取反運算符~的解釋是:
對數(shù)據(jù)的每個二進制位取反,即把1變?yōu)?,把0變?yōu)?。~x 類似于 -x-1。
如a =61= 0b0011 1101,按位取反后的結(jié)果是:0b1100 0010=194,
可是Python中運算結(jié)果并非如此,
輸出的~a的結(jié)果是:~a=62
這是怎么回事呢?
計算機中的符號數(shù)有三種表示方法,即原碼、反碼和補碼。三種表示方法均有符號位和數(shù)值位兩部分,符號位都是用0表示“正”,用1表示“負”,而數(shù)值位,三種表示方法各不相同。
在計算機系統(tǒng)中,數(shù)值一律用補碼來表示和存儲。原因在于,使用補碼,可以將符號位和數(shù)值域統(tǒng)一處理;同時,加法和減法也可以統(tǒng)一處理。
另外,求負整數(shù)的補碼,將其對應(yīng)正數(shù)二進制原碼表示所有位取反(包括符號位,0變1,1變0)后加1
這里用括號來表示符號位,0表示正數(shù),1表示負數(shù)。
a=61=(0)0b0011 1101,正數(shù)補碼
~a=(1)0b1100 0010,負數(shù)補碼,符號位為1表示這個代表一個負數(shù),我們要知道其表示的數(shù)值。
對應(yīng)負數(shù)原碼到補碼的轉(zhuǎn)換過程:
(1)數(shù)值部分先減一:0b1100 0001
(2)數(shù)值部分取反:0b0011 1110,數(shù)值部分62
加上符號則~a =-62= (1)0b0011 1110,負數(shù)原碼
到此這篇關(guān)于Python中如何實現(xiàn)真正的按位取反運算的文章就介紹到這了,更多相關(guān)Python按位取反運算內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
關(guān)鍵詞:
上一篇:新規(guī)落地不能只靠博主自覺 今日最新
下一篇:最后一頁
凡本網(wǎng)注明“XXX(非中國微山網(wǎng))提供”的作品,均轉(zhuǎn)載自其它媒體,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點和其真實性負責。
據(jù)新綸新材(002341)消息,近日,新綸新材(002341)盲孔OCA成功通過主流終端品牌廠商最嚴苛的1000小時可靠性
2023-05-25 13:47
燃氣股午后異動,美能能源(001299)直線封板,德龍匯能(000593)、水發(fā)燃氣(603318)、國新能源、成都燃氣(603
2023-05-25 13:40
據(jù)TrendForce集邦咨詢研究顯示,今年第一季DRAM產(chǎn)業(yè)營收約96 6億美元,環(huán)比下降21 2%,已續(xù)跌三個季度。出
2023-05-25 13:22
雄帝科技(300546)在互動平臺表示,公司的產(chǎn)品能適配多維生物特證識別技術(shù),包括但不限于指紋識別、動靜態(tài)人
2023-05-25 13:42
粽子主要用糯米做的,它的吃法比較多,可以加各種餡料,還可以搭配各種食材一起吃,吃粽子的時候可以喝點紅
2023-05-25 12:56
粽子是用糯米制作的,它吃起來軟軟糯糯的,可以搭配各種餡料,很多人都喜歡吃。粽子煮熟之后要盡快吃掉,吃
2023-05-25 12:44
7月份正是放暑假的時候,所以很多友友都制定了出游計劃,但由于此時的天氣一天比一天的熱,因此很多友友都
2023-05-25 12:51
粽子的吃法比較多,營養(yǎng)豐富,深受人們喜歡,很多人都會在家煮粽子吃。煮熟的粽子吃不完可以放冰箱冷凍保存
2023-05-25 12:41
愛情真的會風水輪流轉(zhuǎn)是大家經(jīng)常討論的,畢竟命理一說自老祖宗那一輩就是相當注重的,雖說大家時下都提倡科
2023-05-25 12:57
吉祥航空(603885)在業(yè)績說明會上表示,公司正努力與各國機場溝通,希望盡快恢復(fù)國際線,并爭取新開一些國際
2023-05-25 12:42