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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java中的“”、“|”、“^”、“~”运算符怎么用?

發(fā)布時間:2025/3/19 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java中的“”、“|”、“^”、“~”运算符怎么用? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

          • 問題:
          • 位運算符的用法
            • &運算符
            • |運算符
            • ^運算符
            • ~運算符

問題:

java源碼中的位運算是如何使用的?

位運算符的用法

java中的“&”、“|”、“^”、“~”邏輯運算符的使用,此處使用了int類型,4個字節(jié)32位

&運算符

&是AND運算符,是一種位運算符。有0為0,全1為1。

運算規(guī)則如下:

  • 1&1=1;
  • 1&0=0;
  • 0&1=0;
  • 0&0=0;
/*** &是AND運算符,是一種位運算符。有0為0,全1為1* 運算規(guī)則如下:* 1&1=1;* 1&0=0;* 0&1=0;* 0&0=0;*/@Testpublic void test01() {//a的二進制補碼表示為:0000 0000 0000 0000 0000 0000 0000 0111int a = 7;print2Binary(a);//b的二進制補碼表示為:0000 0000 0000 0000 0000 0000 0000 0010int b = 2;print2Binary(b);//c=a&b的二進制補碼表示為:0000 0000 0000 0000 0000 0000 0000 0010int c = a & b;//十進制為2System.out.println("a&b=" + c);print2Binary(c);}

運算結(jié)果:

十進制數(shù)[7]二進制補碼表示為:111 十進制數(shù)[2]二進制補碼表示為:10 a&b=2 十進制數(shù)[2]二進制補碼表示為:10
|運算符

|是OR運算符,是一種位符。有1為1,全0為0

運算規(guī)則如下:

  • 1|1=1;
  • 1|0=1;
  • 0|1=1;
  • 0|0=0;
/*** |是OR運算符,是一種位符。有1為1,全0為0* 運算規(guī)則如下:* 1|1=1;* 1|0=1;* 0|1=1;* 0|0=0;*/@Testpublic void test02() {//a的二進制補碼表示為:0000 0000 0000 0000 0000 0000 0000 0111int a = 7;print2Binary(a);//b的二進制補碼表示為:0000 0000 0000 0000 0000 0000 0000 0010int b = 2;print2Binary(b);//c=a|b的二進制補碼表示為:0000 0000 0000 0000 0000 0000 0000 0111int c = a | b;//十進制為7System.out.println("a|b=" + c);print2Binary(c);}

運算結(jié)果:

十進制數(shù)[7]二進制補碼表示為:111 十進制數(shù)[2]二進制補碼表示為:10 a|b=7 十進制數(shù)[7]二進制補碼表示為:111
^運算符

^是異或運算符,是一種位符。相同為0,不同為1
運算規(guī)則如下:

  • 1^1=0;
  • 1^0=1;
  • 0^1=1;
  • 0^0=0;
/*** ^是異或運算符,是一種位符。相同為0,不同為1* 運算規(guī)則如下:* 1^1=0;* 1^0=1;* 0^1=1;* 0^0=0;*/@Testpublic void test03() {//a的二進制補碼表示為:0000 0000 0000 0000 0000 0000 0000 0111int a = 7;print2Binary(a);//b的二進制補碼表示為:0000 0000 0000 0000 0000 0000 0000 0010int b = 2;print2Binary(b);//c=a^b的二進制補碼表示為:0000 0000 0000 0000 0000 0000 0000 0101int c = a ^ b;//十進制為5System.out.println("a^b=" + c);print2Binary(c);}

運算結(jié)果:

十進制數(shù)[7]二進制補碼表示為:111 十進制數(shù)[2]二進制補碼表示為:10 a^b=5 十進制數(shù)[5]二進制補碼表示為:101
~運算符

~是非運算符,是一種位符。0取反為1,1取反為0
運算規(guī)則如下:

  • ~1=0;
  • ~0=1;
/*** ~是非運算符,是一種位符。0取反為1,1取反為0* 運算規(guī)則如下:* ~1=0;* ~0=1;*/@Testpublic void test04() {//a的二進制補碼表示為:0000 0000 0000 0000 0000 0000 0000 0111int a = 7;print2Binary(a);/*** b按位二進制補碼表示為 1111 1111 1111 1111 1111 1111 1111 1000* b的二進制原碼表示則為 1000 0000 0000 0000 0000 0000 0000 1000* 原碼的第一位為符號位1代表負數(shù),值為-8*/int b = ~a;System.out.println("~a取反為:" + b);print2Binary(b);}

運算結(jié)果:

十進制數(shù)[7]二進制補碼表示為:111 ~a取反為:-8 十進制數(shù)[-8]二進制補碼表示為:11111111111111111111111111111000

其中打印二進制的方法print2Binary如下:

/*** 打印十進制數(shù)二進制** @param a*/private void print2Binary(int a) {StringBuilder sb = new StringBuilder();sb.append("十進制數(shù)[");sb.append(a);sb.append("]二進制補碼表示為:");sb.append(Integer.toBinaryString(a));System.out.println(sb.toString());}

其他位運算:<< 、>>在《java位于算——一個測試搞懂位運算》中有做說明

總結(jié)

以上是生活随笔為你收集整理的java中的“”、“|”、“^”、“~”运算符怎么用?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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