摘要:反碼正數的反碼就是本身。負數的反碼是二進制保留符號位。作用是對運算符兩側以二進制表達的操作符按位分別進行與運算。則完整的運算式為無符號右移一位。
java中對二進制的操作符 &、|、^、~、>>、<<、>>>幾個位操作符。不管是初始值是依照何種進制,都會換算成二進制進行位操作。接下來對這幾種操作符進行一下簡單的解說。
先說一下基礎知識:
原碼 就是當前數字的二進制表現形式,如-1的原碼是1000 0001。
反碼 正數的反碼就是本身。負數的反碼是二進制保留符號位。剩余位取反,比如-1的反碼是1111 1110;
補碼 正數的反碼、補碼、原碼都是一樣的,負數的補碼是在其反碼的基礎上+1,比如-1的補碼是1111 1111。
&:
作用是對運算符兩側以二進制表達的操作符按位分別進行"與"運算。而這一運算是以數中同樣的位(bit)為單位的。
操作的規則是:僅當兩個操作數都為1時。輸出結果才為1。否則為0,示例如以下:
12 的二進制為 1001 5 的二進制為 0101 則 12 & 5 的二進制為 0100,則完整的運算式為 12 & 5 = 4;
|:
作用是對運算符兩側以二進制表達的操作符按位分別進行"或"運算。而這一運算是以數中同樣的位(bit)為單位的。
操作的規則是:僅當兩個操作數都為0時,輸出的結果才為0。否則為1,示例如以下:
12 的二進制為 1100 5 的二進制為 0101 則 12 | 5 的二進制為 1101。則完整的運算式為 12 & 5 = 13;
^:
作用是對運算符兩側以二進制表達的操作數按位分別進行"異或"運算,而這一運算是以數中同樣的位(bit)為單位的。
異或運算操作的規則是:僅當兩個操作數不同一時候。對應的
輸出結果才為1,否則為0,示比例如以下:
12 的二進制為 1100 5 的二進制為 0101 則 12 | 5 的二進制為 1001。則完整的運算式為 12 & 5 = 9;
~:
"取反"運算符~的作用是將各位數字取反:全部的0置為1,1置為0,示例如以下:
12 的二進制為 1100 進行取反操作為 10000000 00000000 00000000 00001101 則完整的運算式為 ~12 = -13
<<:
左移就是把一個數的全部位數都向左移動若干位,示例如以下:
12 的二進制為 1100 則 12 << 1 的二進制為 11000, 則完整的運算式為 12 << 1 = 24;
>>:
右移就是把一個數的全部位數都向右移動若干位,示例如以下:
12 的二進制為 1100 則 12 >> 1 的二進制為 0110。 則完整的運算式為 12 >> 1 = 6;
>>>:
無符號右移一位。不足的補0。 示例如以下:
12 的二進制為 1100 則 12 >> >1 的二進制為 0110, 則完整的運算式為 12 >> 1 = 6;
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/71062.html
摘要:在學習源碼中,發現有大量使用位運算符,這樣做的目的是為了節約內存開銷和加快計算效率。位運算符,這個位代表這什么位二進制位簡稱位,是二進制記數系統中表示小于的整數的符號,一般用或表示,是具有相等概率的兩種狀態中的一種。 在學習源碼中,發現有大量使用位運算符,這樣做的目的是為了節約內存開銷和加快計算效率。 位運算符,這個位代表這什么? 位:二進制位簡稱位,是二進制記數系統中表示小于2的整數...
摘要:基本數據類型布爾類型或,占用位。強制類型轉換強制類型轉換的語法格式是,強制類型轉換的運算符是圓括號。無符號右移運算符。對于低于類型如和的操作數總是先自動類型轉換為類型后再移位。 注釋 單行注釋//......多行注釋/ .../文檔注釋/*.../ 文檔注釋位于注釋內容上一行 標識符和關鍵字 分隔符 分號:作為語句的分隔,每個Java語句必須使用分號作為結尾。花括號:定義一個代碼...
摘要:所以就想把一大串縮短點,將二進制中的三位用一位表示。以可以大寫也可以小寫開頭版本可以表示二進制了八進制的數據表現形式由組成。結果把系數基數的權次冪相加即可。因為語言采用的是碼來編碼的。 1_(常量的概述和使用)* A:什么是常量(constant) 在程序執行的過程中其值不可以發生改變 B:Java中常量的分類 字面值常量 自定義常量(面向對象部分講) C:字面值常量的...
摘要:閱讀原文輕松搞定位運算我們日常開發中為運算使用的并不多,但如果能巧妙的使用位運算可以減少運行開銷和優化算法,通過的源碼可知,如。按位非操作十進制二進制操作數后結果總結對每位進行取反。 閱讀原文:輕松搞定Java位運算 我們日常開發中為運算使用的并不多,但如果能巧妙的使用位運算可以減少運行開銷和優化算法,通過Java的源碼可知,如HashMap。 單位換算 bit:位 一個二進制數據...
摘要:位運算符位運算符與邏輯運算符類似,但是位運算符是對每一位進行計算。上面說到的按位取反加,就可以寫成移位運算符右移與無符號右移相似,是將整數所有的位向右移動位,拋棄個低位。空出來的低位用的最高位值補全。 定點數據再計算機中的表示方法 例如一個整數類型(int)的數據在內存中占用了32位。通俗的講就是在內存中挖了32個坑,每一個坑里可以放一個0或者1. 00000000 11111111 ...
閱讀 786·2021-08-23 09:46
閱讀 928·2019-08-30 15:44
閱讀 2586·2019-08-30 13:53
閱讀 3039·2019-08-29 12:48
閱讀 3847·2019-08-26 13:46
閱讀 1780·2019-08-26 13:36
閱讀 3510·2019-08-26 11:46
閱讀 1408·2019-08-26 10:48