位運(yùn)算符
Java定義了位運(yùn)算符,應(yīng)用于整數(shù)類型(int),長(zhǎng)整型(long),短整型(short),字符型(char),和字節(jié)型(byte)等類型。
位運(yùn)算符作用在所有的位上,并且按位運(yùn)算。假設(shè)a = 60,和b = 13;它們的二進(jìn)制格式表示將如下:
A = 0011 1100
B = 0000 1101
-----------------
A&b = 0000 1100
A | B = 0011 1101
^ B = 0011 0001
~A= 1100 0011
下表列出了位運(yùn)算符的基本運(yùn)算,假設(shè)整數(shù)變量A的值為60和變量B的值為13:
操作符描述例子
&按位與操作符,當(dāng)且僅當(dāng)兩個(gè)操作數(shù)的某一位都非0時(shí)候結(jié)果的該位才為1。(A&B),得到12,即0000 1100
|按位或操作符,只要兩個(gè)操作數(shù)的某一位有一個(gè)非0時(shí)候結(jié)果的該位就為1。(A | B)得到61,即 0011 1101
^按位異或操作符,兩個(gè)操作數(shù)的某一位不相同時(shí)候結(jié)果的該位就為1。(A ^ B)得到49,即 0011 0001
〜按位補(bǔ)運(yùn)算符翻轉(zhuǎn)操作數(shù)的每一位。(〜A)得到-60,即1100 0011
<< 按位左移運(yùn)算符。左操作數(shù)按位左移右操作數(shù)指定的位數(shù)。A << 2得到240,即 1111 0000
>> 按位右移運(yùn)算符。左操作數(shù)按位右移右操作數(shù)指定的位數(shù)。A >> 2得到15即 1111
>>> 按位右移補(bǔ)零操作符。左操作數(shù)的值按右操作數(shù)指定的位數(shù)右移,移動(dòng)得到的空位以零填充。A>>>2得到15即0000 1111
實(shí)例
下面的簡(jiǎn)單示例程序演示了位運(yùn)算符。復(fù)制并粘貼下面的Java程序并保存為Test.java文件,然后編譯并運(yùn)行這個(gè)程序:
public class Test {
public static void main(String args[]) {
int a = 60; /* 60 = 0011 1100 */
int b = 13; /* 13 = 0000 1101 */
int c = 0;
c = a & b; /* 12 = 0000 1100 */
System.out.println("a & b = " + c );
c = a | b; /* 61 = 0011 1101 */
System.out.println("a | b = " + c );
c = a ^ b; /* 49 = 0011 0001 */
System.out.println("a ^ b = " + c );
c = ~a; /*-61 = 1100 0011 */
System.out.println("~a = " + c );
c = a << 2; /* 240 = 1111 0000 */
System.out.println("a << 2 = " + c );
c = a >> 2; /* 15 = 1111 */
System.out.println("a >> 2 = " + c );
c = a >>> 2; /* 15 = 0000 1111 */
System.out.println("a >>> 2 = " + c );
}
}
以上實(shí)例編譯運(yùn)行結(jié)果如下:
a & b = 12
a | b = 61
a ^ b = 49
~a = -61
a << 2 = 240
a >> 15
a >>> 15
2015職稱計(jì)算機(jī)考試書PowerPoint2007中 .. 定價(jià):¥45 優(yōu)惠價(jià):¥42 更多書籍 | |
2015年全國(guó)職稱計(jì)算機(jī)考試教材(2007模 .. 定價(jià):¥225 優(yōu)惠價(jià):¥213 更多書籍 |