1棚蓄、基本數(shù)據(jù)類型轉(zhuǎn)換
前提:這里討論的只是7種基本數(shù)據(jù)類型變量間的運算。不包含boolean
類型的。
1.1捞烟、自動類型提升
- 自動類型轉(zhuǎn)換:容量小的類型自動轉(zhuǎn)換為容量大的數(shù)據(jù)類型赎瑰。數(shù)據(jù)類型按容量大小排序:
char
王悍、byte
、short
——>int
——>long
——>float
——>double
- 有多種類型的數(shù)據(jù)混合運算時餐曼,系統(tǒng)首先自動將所有數(shù)據(jù)轉(zhuǎn)換成容量最大的那種數(shù)據(jù)類型压储,然后進行計算。
-
byte
源譬、short
集惋、char
之間不會互相轉(zhuǎn)換,他們?nèi)咴谟嬎銜r首先轉(zhuǎn)換為int
類型踩娘。
byte b1 = 2;
int i1 = 129;
// 編譯不通過
// byte i2 = b1 + i1;
int i2 = b1 + i1;
-
boolean
類型不能與其他數(shù)據(jù)類型計算刮刑。 - 當(dāng)把任何基本數(shù)據(jù)類型的值和字符串(
String
)進行連接運算(+
)時,基本數(shù)據(jù)類型的值將自動轉(zhuǎn)換為字符串(String
)類型。
2雷绢、強制類型轉(zhuǎn)換
- 強制類型轉(zhuǎn)換:自動類型提升的逆運算泛烙。
- 需要使用強轉(zhuǎn)符:
()
- 注意點:強制類型轉(zhuǎn)換,可能導(dǎo)致精度損失翘紊。
- 通常蔽氨,字符串不能直接轉(zhuǎn)換為基本類型,但通過基本類型對應(yīng)的包裝類則可以實現(xiàn)把字符串轉(zhuǎn)換成基本類型帆疟。
-
boolean
不可以轉(zhuǎn)換為其他的數(shù)據(jù)類型鹉究。
// 精度損失舉例1
double d1 = 12.3;
int i1 = (int)d1; // 截斷操作
System.out.println(i1); // 12
// 沒有精度損失
long l1 = 123l;
short s2 = (short)l1;
// 精度損失舉例2
int i2 = 128;
byte b = (byte)i2;
System.out.println(b); // -128
3、變量運算規(guī)則的兩個特殊情況
3.1鸯匹、
// 1.編碼情況1:long型變量后面沒加l坊饶,相當(dāng)于變量提升 int --> long
long l1 = 123123;
System.out.println(l1);
// 編譯失敗:過大的整數(shù)殴蓬,當(dāng)成int類型存儲
// long l2 = 3434324342342353452;
long l2 = 3434324342342353452l;
// 編譯失斈浼丁:float一定要加f
float f1 = 12.3;
3.2、
// 2.編碼情況2:
// 整形常量染厅,默認類型為int型
byte b = 12;
// 編譯失敗
// byte b1 = b + 1;
// 浮點型常量痘绎,默認類型為double型
// 編譯失敗
// float f1 = b + 12.3;
4、String類型變量的使用
-
String
屬于引用數(shù)據(jù)類型肖粮,翻譯為:字符串孤页。 - 聲明
String
類型的變量時,使用一對""
涩馆。
String s1 = "Hello World!";
System.out.println(s1);
String s2 = "a";
String s3 = "";
// 編譯不通過
// char c = '';
-
String
可以和8
種基本數(shù)據(jù)類型做運算行施,且運算只能是連接運算:+
,運算的結(jié)果仍然是String
類型魂那。
int number = 1001;
String numberStr = "學(xué)號:";
String info = numberStr + number; // +:連接運算
System.out.pringln(info);
5蛾号、二進制轉(zhuǎn)十進制
- java整數(shù)常量默認是
int
類型,當(dāng)用二進制定義整數(shù)時涯雅,其第32位(最高位鲜结,從左往右第一個數(shù)字)是符號位;當(dāng)是long
類型時活逆,二進制默認占64位精刷,第64位(最高位)是符號位。 - 計算機以二進制的形式保存所有的整數(shù)蔗候。
1.正數(shù)的原碼怒允、反碼、補碼都相同锈遥。
2.負數(shù)的補碼是其反碼+1误算。 - 二進制的整數(shù)有如下三種形式:
1.原碼:直接將一個數(shù)值換成二進制數(shù)仰美。最高位是符號位。
2.負數(shù)的反碼:是對原碼按位取反儿礼,只是最高位(符號位)確定為1咖杂。
3.負數(shù)的補碼:其反碼加1。
注意:計算機底層都以補碼的方式來存儲數(shù)據(jù)蚊夫!
6诉字、二進制與八進制十六進制之間的轉(zhuǎn)換
6.1、二進制轉(zhuǎn)八進制
6.2知纷、八進制轉(zhuǎn)二進制
八進制數(shù)通過除2取余法壤圃,得到二進制數(shù),對每個八進制為3個二進制琅轧,不足時在最左邊補零伍绳。
6.3、二進制轉(zhuǎn)十六進制
6.4乍桂、十六進制轉(zhuǎn)二進制
十六進制數(shù)通過除2取余法冲杀,得到二進制數(shù),對每個十六進制為4個二進制睹酌,不足時在最左邊補零权谁。