- 相關(guān)推薦
Java“異或” 運(yùn)算符
導(dǎo)語(yǔ):異或運(yùn)算符的符號(hào)為^,當(dāng)對(duì)兩個(gè)整數(shù)進(jìn)行異或操作計(jì)算時(shí),是對(duì)其相應(yīng)的二進(jìn)制數(shù)進(jìn)行的異或運(yùn)算。下面讓我們了解一下Java的異或運(yùn)算符。
其規(guī)則為:對(duì)于每一二進(jìn)制位,0^0 =0, 0^1=1, 1^0=1, !^1=0。
可簡(jiǎn)單理解成:相同位為0,不同為為1(或兩個(gè)數(shù)字相加,但不考慮進(jìn)位)。
因此,又常稱為按位異或。
異或運(yùn)算具有如下幾個(gè)特征:
1.0^任何數(shù) = 任何數(shù);
2.任何數(shù) ^ 任何數(shù) = 0;
3.具有交換律:a^b = b^a;
4.具有結(jié)合律:a^b^c = a^(b^c)。
因此,有時(shí)會(huì)見到異或運(yùn)算出現(xiàn)在如下兩個(gè)場(chǎng)景中:
1.不經(jīng)過(guò)第三方變量直接交換兩個(gè)整數(shù)的值。
1 public class ExchangeNumber {
2
3 public static void main(String[] args) {
4
5 int a = 12;
6 int b = 7;
7 System.out.println("原數(shù) a=" + a + " b=" + b);
8 a = a ^ b;
9 b = a ^ b;
10 a = a ^ b;
11 System.out.println("交換后的值為 a=" + a + " b=" + b);
12 }
13
14 }
2. 在網(wǎng)絡(luò)傳輸過(guò)程中,通過(guò)異或?qū)?shù)字進(jìn)行簡(jiǎn)單加密,接收后相應(yīng)解密。
如:需要加密的數(shù)字為a,秘鑰為b,則加密后的結(jié)果c=a^b;
接收后,對(duì)c進(jìn)行解密。c^b = a^b^b = a^(b^b) = a^0 = a。
拓展:java語(yǔ)言運(yùn)算符的使用
賦值運(yùn)算符的使用
=、 +=、-=、*=、/=、%=
算術(shù)運(yùn)算符的使用
算術(shù)運(yùn)算就是咱們生活中常見的加、減、乘、除
關(guān)系(比較)運(yùn)算符的使用
關(guān)系運(yùn)算又稱比較運(yùn)算,用來(lái)對(duì)數(shù)據(jù)進(jìn)行比較,通過(guò)比較得到一個(gè)boolean類型的結(jié)果。比較運(yùn)算有: > 、>= 、 < 、<=、 ==(注意和賦值運(yùn)算符的區(qū)別)、!=
邏輯運(yùn)算符的使用:
&&(有短路功能) : 兩個(gè)條件同時(shí)為true時(shí)結(jié)果才為true
&: 沒(méi)有短路功能,
||(有短路功能) : 兩個(gè)條件中只要有一個(gè)為true則結(jié)果為true
| : 沒(méi)有短路功能
! : 非真即假,非假即真
自增(++),自減(--)的使用
自增:++
后自增:如果變量有參與運(yùn)算,先拿變量當(dāng)前的值進(jìn)行運(yùn)算,然后再++
前自增: 先將變量的值進(jìn)行自增,再參與運(yùn)算
(自減的原理同自增)
運(yùn)算符的優(yōu)先級(jí)別
最高的優(yōu)先級(jí):小括號(hào),即( )
最低的優(yōu)先級(jí):賦值運(yùn)算符,即=
優(yōu)先級(jí)順序:!>算術(shù)運(yùn)算符>比較運(yùn)算符>&&>||
【Java“異或” 運(yùn)算符】相關(guān)文章:
Java運(yùn)算符10-04
java運(yùn)算符入門教程09-21
C語(yǔ)言的條件運(yùn)算符12-19
c語(yǔ)言位運(yùn)算符的用法指導(dǎo)06-02
java教程之Java編程基礎(chǔ)09-12
JAVA的就業(yè)方向10-09