1. 程式人生 > >Java 基本語法----進制、運算符

Java 基本語法----進制、運算符

忽略 如果 編譯 back 小寫 大小 false alt strong

進 制

對於整數,有四種表示方式:

二進制:0,1 ,滿 2 進 1.以 0b 或 0B 開頭。
十進制:0-9 ,滿 10 進 1.
八進制:0-7 ,滿 8 進1. 以數字 0 開頭表示。
十六進制:0-9 及 A-F,滿 16 進1. 以 0x 或 0X開頭表示。此處的A-F不區分大小寫。


所有數字在計算機底層都以二進制形式存在
計算機以補碼的形式保存所有的整數
正數的補碼與其原碼相同;負數的補碼是在其反碼的末位加1
原碼:直接將一個數值換成二進制數
反碼:是對原碼按位取反,只是最高位(符號位)保持不變
Java整數常量默認是int類型,當用二進制定義整數時,其第32位是符號位;當是long類型時,二進制默認占64位,第64位是符號位

技術分享

進制的基本轉換

十進制二進制互轉
 十進制轉成二進制 除以2取余數
 二進制轉成十進制 乘以2的冪數
二進制八進制互轉
二進制十六進制互轉
十進制八進制互轉
十進制十六進制互轉

技術分享

運算符

運算符分類

算術運算符
賦值運算符
比較運算符(關系運算符)
邏輯運算符
位運算符
三元運算符

算數運算符

技術分享

//取模
int r = 10 % 3;
System.out.println(r);
        
//自增
int i = 10;
        
//i++: 先取 i 值, 在運算(i = i + 1)
int j = i++;
System.out.println(j);
        
j 
= i; System.out.println(j); int m = 100; //++m: 先運算(m = m + 1), 後取值 int n = ++m; System.out.println(n); n = m; System.out.println(n); //+: 字符串相加 String str = "abc"; String str2 = "def"; String str3 = str + str2; //abcdef System.out.println(str3); //如果對負數取模,可以把模數負號忽略不記
System.out.println(10 % -3); //1 //如果被模的數是負數, 則先對其絕對值進行取模運算, 結果在加上一個負號 System.out.println(-10 % 3); //-1 System.out.println(-10 % -3); //-1 //整數之間做除法時,只保留整數部分而舍棄小數部分 int x=3510; x= x / 1000 * 1000; System.out.println(x); //3000 //+ 除字符串相加功能外,還能把非字符串轉換成字符串 String str4 = "1"; System.out.println(str4 + 100); //1100

如果對負數取模,可以把模數負號忽略不記,如:5%-2=1。 但被模數是負數就另當別論。
對於除號“/”,它的整數除和小數除是有區別的:整數之間做除法時,只保留整數部分而舍棄小數部分。 例如:int x=3510;x=x/1000*1000; x的結果是3000
“+”除字符串相加功能外,還能把非字符串轉換成 字符串.例如:System.out.println("5+5="+5+5); //打印結果是5+5=55


賦值運算符

符號:=
擴展賦值運算符: +=, -=, *=, /=, %=

x += 1000; // x = x + 1000; 
System.out.println(x); //4000


比較運算符

技術分享

//比較運算符
System.out.println(x >= 1000); //true

註1:比較運算符的結果都是boolean型,也就是要麽是true,要麽是false。
註2:比較運算符“==”不能誤寫成“=” 。


邏輯運算符

技術分享

//邏輯運算符
int a = 10;
int b = 20;

邏輯運算符用於連接布爾型表達式,在Java中不可以寫成3<x<6,應該寫成x>3 && x<6 。


“&”和“&&”的區別

單&時,左邊無論真假,右邊都進行運算;
雙&時,如果左邊為真,右邊參與運算,如果左邊為假,那麽右邊不參與運算。
和“||”的區別同理,雙或時,左邊為真,右邊不參與運算。
異或( ^ )與或( | )的不同之處是:對於 ^ 而言,當左右都為true時,結果為false。

// &: 與 運算符, 當且僅當兩邊都為真時, 表達式的結果為 true
System.out.println(a > 5 & b < 30); //true
System.out.println(a > 15 & b < 30); //false
System.out.println(a > 5 & b < 20); //false
        
// |: 或 運算符, 當且僅當兩邊都為假時, 表達式結果為 false
System.out.println(a > 5 | b < 30); //true
System.out.println(a > 15 | b < 3); //false
System.out.println(a > 5 | b < 20); //true
        
// ^: 異或 運算符, 當且僅當兩邊的表達式的結果不同時為 true, 否則為 false
System.out.println(a > 5 ^ b < 30); //false
System.out.println(a > 15 ^ b < 3); //false
System.out.println(a > 5 ^ b < 20); //true
        
// !: 取反 運算符. 
System.out.println(!(a > 5)); //false
        
//短路邏輯運算符: &&, ||. 若 短路邏輯運算符前的表達式已經可以確定整個表達式的值, 
//則不再判斷 短路運算符後邊的表達式的值
System.out.println(a > 15 && (10 / 0 == 1)); //false


位運算符

位運算是直接對二進制進行運算

技術分享

//位運算符
int c = 3; //0000 0011        
        
//左移運算符
System.out.println(c << 2); //0000 1100 -> 12  3 * (2*2) = 12
        
//右移運算符
System.out.println(c >> 2); //0000 0000 -> 0   3 / (2 * 2) = 0;
        
//無符號右移運算符
int d = -1; 
System.out.println(d >> 1); //-1
System.out.println(d >>> 1); //-1
        
//& 位運算符
/*
 *   0000 0010
 * & 0000 0011
 * ___________
 *   0000 0010   
 */
System.out.println(2 & 3); //2

技術分享

三元運算符

格式:
(條件表達式)?表達式1:表達式2;
如果條件為true,運算後的結果是表達式1;
如果條件為false,運算後的結果是表達式2;

//三元運算符
String e = d > 3 ? "d > 3" : "d <= 3";
System.out.println(e); // d <= 3
        
//編譯不能通過, 因為 : 的兩邊必須是表達式, 且必須是類型兼容的表達式
//d > 3 ? System.out.println("a") : System.out.println("b");
        
boolean res = d > 3 ? false : ">3";

Java 基本語法----進制、運算符