java的位運算符
與(&)、非(~)、或(|)、異或(^)
1.與運算符
與運算符用符號“&”表示,其使用規律如下:
兩個操作數中位都為1,結果才為1,否則結果為0
class Noname1
{
public static void main(String[] args)
{
int a = 5;
int b = 6;
System.out.println(a&b);
}
}
a和b的結果為4
a的值是5轉換為二進制就是101,b的值是6轉換為二進制就是110 根據與運算符的運算規律,只有兩個位都是1,結果才是1,可以知道結果就是100,即4
2.或運算符
或運算符用符號“|”表示,其運算規律如下:
兩個位只要有一個為1,那么結果就是1,否則就為0
class Noname1
{
public static void main(String[] args)
{
int a = 5;
int b = 6;
System.out.println(a|b);
}
}
a和b的結果為7
a的值是5轉換為二進制就是101,b的值是6轉換為二進制就是110根據或運算符的運算規律,兩個位只要有一個為1,那么結果就是1,否則就為0,可以知道結果就是111,即7
3.非運算符
非運算符用符號“~”表示,其運算規律如下:
如果位為0,結果是1,如果位為1,結果是0
class Noname1
{
public static void main(String[] args)
{
int b = 3;
System.out.println(~b);
}
}
b的結果為-4
b的值是3轉換為二進制寫8位就是00000011,補碼為11111100換成原碼10000011就為根據非運算符的運算規律,如果位為0,結果是1,如果位為1,結果是0,可以知道結果就是-4
4.異或運算符
異或運算符是用符號“^”表示的,其運算規律是:
兩個操作數的位中,相同則結果為0,不同則結果為1。
class Noname1
{
public static void main(String[] args)
{
int a = 7;
int b = 2;
System.out.println(a^b);
}
}
a和b的結果為5
a的值是7轉換為二進制為111,b的值是2轉換為二進制為010根據異或運算符的運算規律兩個操作數的位中,相同則結果為0,不同則結果為1。可以知道結果就為101則為5
智能推薦
java入門學習筆記(三)—— 運算符與表達式、關系運算符、邏輯運算符、位運算符、其他運算符、運算符的優先級
一、關系運算符 簡單的關系運算符,不需要多解釋,直接上代碼練習一下就OK了。 1、代碼 2、運行結果 二、邏輯運算符 也沒啥好說的,就三個, && || ! 來個小練習,一筆帶過。 1、代碼 2、運行結果 三、位運算符 終于,來了點像樣的東西。 1、原碼、反碼與補碼 (1)原碼 數值前,加上符號位,0表示正,1表示負。 (2)反碼 正數的反碼,與原碼相同。 負數的反碼,是對其原碼諸...
java 逐位運算符
運算符歸類: 一元運算符:邏輯運算符(!),非運算符(~) 二元運算符:復制運算符(=),邏輯與運算符(&&),邏輯或運算符(||), 逐位與運算符(&),逐位或運算符(|),右移運算符(>>) 三元運算符:X?Y:Z; 逐位運算符 逐位運算符是一種比較復制的運算符。可以分為逐位邏輯運算符,逐位位移運算符兩種。無論那種逐位運...
java——位運算符詳解
位運算是直接對整數的二進制各個位上的數進行的運算,結果還是數值。位運算符一共7種。 一、左移:<< 1、被移除的最高位丟棄,空缺位補0 2、左移N位,(在數據范圍之內)相當于乘以2的N次方。 3、左移并不能改變變量本身的值 4、對于byte/short/int三種類型的數據,Java語言最多支持31位的位移運算,對于long類型的數據而言,最多支持63位的位移運算 二、有符號右移:&g...
java中位運算符詳解
java中位運算符有“與( & )”、“或( | )”、“異或( ^ )”、“取反( ~ )”、“左移( << )”、“右移( >> )”、“無符號右移( >>> )”,主要是針對二...
Java學習——位運算符
位運算符表示 在Java語言中,二進制數使用補碼表示,最高位為符號位,正數的符號位為0,負數為1。補碼的表示需要滿足如下要求。 (1)正數的最高位為0,其余各位代表數值本身(二進制數)。 (2)對于負數,通過對該數絕對值的補碼按位取反,再對整個數加1。 位運算符 Java定義了位運算符,應用于整數類型(int),長整型(long),短整型(short),字符型(char),和字節型(byt...
猜你喜歡
3D游戲編程與設計——游戲對象與圖形基礎章節作業與練習
3D游戲編程與設計——游戲對象與圖形基礎章節作業與練習 3D游戲編程與設計——游戲對象與圖形基礎章節作業與練習 自學資源 作業內容 1、基本操作演練【建議做】 天空盒的制作: 地圖的制作: 整體效果: 2、編程實踐 項目要求: 項目結構: 代碼詳解: Actions: ISSActionCallback.cs SSAction.cs SSAction...
FlycoTabLayout 的使用
FlycoTabLayout 一個Android TabLayout庫,目前有3個TabLayout SlidingTabLayout:參照PagerSlidingTabStrip進行大量修改. 新增部分屬性 新增支持多種Indicator顯示器 新增支持未讀消息顯示 新增方法for懶癌患者 CommonTabLayout:不同于SlidingTabLayout對ViewPager依賴,它是一個不...
爬蟲項目實戰八:爬取天氣情況
爬取天氣情況 目標 項目準備 接口分析 代碼實現 效果顯示 寫入本地 目標 根據天氣接口,爬取接下來一周的天氣情況。 項目準備 軟件:Pycharm 第三方庫:requests,BeautifulSoup,csv 接口地址:http://api.k780.com:88/?app=weather.future&weaid=城市名&appkey=10003&sign=b59bc...
關于web項目的目錄問題
先給段代碼: 上面這個代碼一直出錯,我不知道原因,后面不停的查找資料發現了問題:我的web項目輸出目錄有問題,因為我也是第一次用idea寫web項目,發現很多bug 其實都沒有太大問題,我們需要注意的是你必須在out這個輸出文件夾中擁有這個文件,out輸出文件夾會默認過濾這些文件...
二叉搜索樹轉化為雙向鏈表
題目描述: 輸入一棵二叉搜索樹,將該二叉搜索樹轉換成一個排序的循環雙向鏈表。要求不能創建任何新的節點,只能調整樹中節點指針的指向。 為了讓您更好地理解問題,以下面的二叉搜索樹為例: 我們希望將這個二叉搜索樹轉化為雙向循環鏈表。鏈表中的每個節點都有一個前驅和后繼指針。對于雙向循環鏈表,第一個節點的前驅是最后一個節點,最后一個節點的后繼是第一個節點。 下圖展示了上面的二叉搜索樹轉化成的鏈表。&ldqu...