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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

java中平方运算符,java中的“”、“|”和“^”、“~”运算符

發(fā)布時(shí)間:2024/1/18 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java中平方运算符,java中的“”、“|”和“^”、“~”运算符 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

今天在項(xiàng)目中看到一個(gè)兩個(gè)變量互換值的寫法,感覺很奇怪,代碼是這樣的:

int a = 3;

int b = 2;

a ^= b;

b ^= a;

a ^= b;

于是到網(wǎng)上查閱了相關(guān)資料,并寫了自己的測試代碼,同時(shí)對“&”,"|","^"運(yùn)算符做了一些總結(jié):

這幾個(gè)運(yùn)算符都涉及到二進(jìn)制間的邏輯運(yùn)算,為了便于理解,在二進(jìn)制里,我們可以把1當(dāng)做邏輯true,把0當(dāng)做邏輯false。

測試代碼如下:

package test;

public class Test {

public static void main(String[] args) {

int a = 3;

int b = 2;

test1(a, b);

test2(a, b);

test3(a, b);

test4(a);

}

public static void test1(int a, int b) {

System.out.println("a & b = " + (a & b));

}

public static void test2(int a, int b) {

System.out.println("a | b = " + (a | b));

}

public static void test3(int a, int b) {

System.out.println("a ^ b = " + (a ^ b));

}

public static void test4(int a){

System.out.println("~a = " + (~a));

}

}

1、“&”按位與運(yùn)算符:

運(yùn)算規(guī)則:參與運(yùn)算的數(shù)字,低位對齊,高位不足的補(bǔ)零,對應(yīng)的二進(jìn)制位都為1,則運(yùn)算結(jié)果為1,否則為0,因?yàn)槿魏螖?shù)與0都得0。

例子中的計(jì)算過程:

3的二進(jìn)制形式為0000 0000 0000 0000 0000 0000 0000 0011

2的二進(jìn)制形式為0000 0000 0000 0000 0000 0000 0000 0010

按位進(jìn)行與運(yùn)算,結(jié)果為0000 0000 0000 0000 0000 0000 0000 0010

這個(gè)數(shù)字轉(zhuǎn)換為十進(jìn)制就是數(shù)字2.

2、“|”按位或運(yùn)算符:

運(yùn)算規(guī)則:參與運(yùn)算的數(shù)字,低位對齊,高位不足的補(bǔ)零,對應(yīng)的二進(jìn)制位有一個(gè)為1則為1,否則為0,1和任何數(shù)或運(yùn)算都是1。

例子中的計(jì)算過程:

3的二進(jìn)制形式為0000 0000 0000 0000 0000 0000 0000 0011

2的二進(jìn)制形式為0000 0000 0000 0000 0000 0000 0000 0010

按位進(jìn)行或運(yùn)算,結(jié)果為0000 0000 0000 0000 0000 0000 0000 0011

這個(gè)數(shù)字轉(zhuǎn)換為十進(jìn)制就是數(shù)字3.

3、“^”按位異或運(yùn)算符:

運(yùn)算規(guī)則:參與運(yùn)算的數(shù)字,低位對齊,高位不足的補(bǔ)零,對應(yīng)的二進(jìn)制位相同為零,不相同為1。

例子中的計(jì)算過程:3的二進(jìn)制形式為0000 0000 0000 0000 0000 0000 0000 0011

2的二進(jìn)制形式為0000 0000 0000 0000 0000 0000 0000 0010

按位進(jìn)行或運(yùn)算,結(jié)果為0000 0000 0000 0000 0000 0000 0000 0001

這個(gè)數(shù)字轉(zhuǎn)換為十進(jìn)制就是數(shù)字1.

4、“~”按位非運(yùn)算:

按位非也叫做補(bǔ),其實(shí)就是對二進(jìn)制 先取反,再取反+1并添加上符號(hào),就可以得到結(jié)果。

運(yùn)算規(guī)則:只操作一個(gè)數(shù)字,將該數(shù)字中為1的位變成0,為0的位變成1。

適用場合:反轉(zhuǎn)數(shù)字的內(nèi)容

例子中的計(jì)算過程:

3的二進(jìn)制形式為0000 0000 0000 0000 0000 0000 0000 0011????? 取反后:1111 1111 1111 1111 1111 1111 1111 1100

由于取反后得到的是一個(gè)負(fù)數(shù)的存貯形式,而負(fù)數(shù)時(shí)以補(bǔ)碼的形式存貯,所以補(bǔ)碼取反加1,轉(zhuǎn)為十進(jìn)制,再添加上符號(hào)就得到十進(jìn)制形式的值。

即:

取反加1后的結(jié)果:0000 0000 0000 0000 0000 0000 0000 0011 + 1 =? 0000 0000 0000 0000 0000 0000 0000 0100

轉(zhuǎn)為成十進(jìn)制并添加上符號(hào),即最后的結(jié)果為:-4

所以,例子程序中最后的執(zhí)行結(jié)果為:

a & b = 2

a | b = 3

a ^ b = 1

~a = -4

總結(jié)

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

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