1. char ch = '您'
char型別的資料是兩個位元組
一個漢字是兩個位元組,由16個二進位制組成的. 所以char型別的資料可以裝中文
2.
short s = 3;
s= s+2; 和 s += 2; 有什麼區別?
答:s= s+2; 編譯失敗因為s+ 2 時s會被提升為int型別,運算後的結果還是int型別,無法賦值給shot型別。 int型別是32個二進位制位,四個位元組, shot是16個二進位制位2個位元組,所以編譯時會精度丟失的異常
而 s += 2 編譯通過,+=運算子在給s賦值時自動完成了強轉操作。
在JAVA中一共有八種基本資料型別,他們分別是 byte、short、int、long、float、double、char、boolean
其中byte、short、int、long都是表示整數的,只不過他們的取值範圍不一樣
byte的取值範圍為-128~127,佔用1個位元組(-2的7次方到2的7次方-1)
short的取值範圍為-32768~32767,佔用2個位元組(-2的15次方到2的15次方-1)
int的取值範圍為(-2147483648~2147483647),佔用4個位元組(-2的31次方到2的31次方-1)
long的取值範圍為(-9223372036854774808~9223372036854774807),佔用8個位元組(-2的63次方到2的63次方-1)
3.邏輯運算子 -- 用於連線Boolean型別的表示式
& 與 : true & true = true; true & false = false; false & false = false; 特點: 都為真才是真
| 或: true | true = true; true | false = true; false | false = false; 特點: 只要有一個為真就是真
^ 異或 : true ^ true = false; true ^ false = true; false ^ false = false; 特點:兩邊相等結果是假,兩邊不同才是真; 可以參與位運算
! 非: !true = false;
&& 與 (短路功能)
& 和 && : 1. &無論左邊是真是假,右邊都運算; && 當左邊為假時,右邊不再運算,結果就是假 2. &可以參與位運算,
| 和 || :1 . | 兩邊都參與運算; || 當左邊為真,右邊不運算; 2. | 可以參與位運算
4. 位運算子:左移,右移,無符號右移
<< 左移 : 其實是乘以2的n次冪
>> 右移: 其實除以2n次冪,最高位補什麼由原有資料的最高位值定: 如果最高位是0,右移後,用0補空位;如果最高位為1,右移後用1補空位
>>> 無符號右移:無論最高位是什麼,右移後,都用0補
例如:
3<<2 的運算過程:
3的二進位制: 0000-0000 0000-0000 0000-0000 0000-0011
左移兩位: 0000-0000 0000-0000 0000-0000 0000-0011 兩個高位00捨棄
空位補0: 0000-0000 0000-0000 0000-0000 0000-1100 =12
6>>2 的運算過程:
6的二進位制: 0000-0000 0000-0000 0000-0000 0000-0110
右移兩位: 0000-0000 0000-0000 0000-0000 0000-0110 兩個低位10捨棄
空位補0: 0000-0000 0000-0000 0000-0000 0000-0001 = 1
6 & 3 = 2的運算過程:110 & 011 = 010
6 | 5 = 7 的運算過程: 110 | 101 = 111
6 ^ 5 = 3 的運算過程: 110 | 101 = 011
~ 反碼:
~6的運算過程:
6的二進位制: 0000-0000 0000-0000 0000-0000 0000-0110
取反 1111-1111 1111-1111 1111-1111 1111-1001 = -7
求取反後的十進位制結果:(減一再取反)
減一 0000-0000 0000-0000 0000-0000 0000-0001
減一的結果 1111-1111 1111-1111 1111-1111 1111-1000
取反 0000-0000 0000-0000 0000-0000 0000-0111 = 7
因為1111-1111 1111-1111 1111-1111 1111-1001 減一再取反後結果是7 ,所以1111-1111 1111-1111 1111-1111 1111-1001就是-7 也就是 ~6 = -7
負數的表現形式: 例如:-6的表現形式是 6取反加1 也就是 -6 = ~6+1 = -7 + 1