移位運算
在計算機中,int類型是以二進制的形式展示的,如9表示為:
00000000 0000000 0000000 00001001
int類型可進行移位運算,如:
int n = 7; // 00000000 00000000 00000000 00000111 = 7
int a = n << 1; // 00000000 00000000 00000000 00001110 = 14
int b = n << 2; // 00000000 00000000 00000000 00011100 = 28
int c = n << 28; // 01110000 00000000 00000000 00000000 = 1879048192
int d = n << 29; // 11100000 00000000 00000000 00000000 = -536870912
當左移29位時,由於最高位變成1,因此結果變成了負數。
位運算
一共四種,分別為&(且)、|(或)、~(非)、^(異或)
x = 0 & 0; // 0 x = 0 & 1; // 0 x = 1 & 0; // 0 x = 1 & 1; // 1
n = 0 | 0; // 0 n = 0 | 1; // 1 n = 1 | 0; // 1 n = 1 | 1; // 1
n = ~0; // 1 n = ~1; // 0
n = 0 ^ 0; // 0 n = 0 ^ 1; // 1 n = 1 ^ 0; // 1 n = 1 ^ 1; // 0
代碼示例:
public class Main {
public static void main(String[] args) {
int i = 11; // 00000000 00000000 00000000 00001011
int n = 9; // 00000000 00000000 00000000 00001001
System.out.println(i & n); // 9
}
}
