黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

Java教程
Java標識符與關鍵字
Java變量
Java數(shù)據(jù)類型
Java運算符
Java控制語句
Java方法

Java整數(shù)類型

整數(shù)型數(shù)據(jù)在java中有三種表示方式,分別是十進制、八進制、十六進制。默認為十進制,以0開始表示八進制,以0x開始表示十六進制。

● 十進制:0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17...

● 八進制:0,1,2,3,4,5,6,7,10,11,12,13,14,15,16,17,20,21...

● 十六進制:0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,10,11...

在java語言當中,整數(shù)型字面量被當做int類型處理,如果想表示long類型則需要在字面量后面添加L/l,建議大寫L,因為小寫l和1不好區(qū)分。請看以下程序:

public class IntegerTypeTest01 {
	public static void main(String[] args) {
		//十進制
		int a = 10;
		System.out.println("a = " + a);
		//八進制
		int b = 010;
		System.out.println("b = " + b);
		//十六進制
		int c = 0x10;
		System.out.println("c = " + c);
	}
}

運行結果如下圖所示:

Java技術架構

圖4-5:十、八、十六進制

接下來繼續(xù)看以下代碼:

public class IntegerTypeTest02 {
	public static void main(String[] args) {
		
		//聲明一個int類型的變量a
		//100被默認當做int類型處理
		//以下代碼不存在類型轉(zhuǎn)換
		int a = 100;
		
		//100被默認當做int類型處理,占用4個字節(jié)
		//b變量是long類型,默認可容納8個字節(jié)
		//小容量轉(zhuǎn)換成大容量,叫做自動類型轉(zhuǎn)換
		long b = 100;
		
		//b變量long類型,占用8個字節(jié)
		//c變量int類型,占用4個字節(jié)
		//大容量不能直接賦值給小容量,編譯報錯了
		//int c = b;
		
		//強制類型轉(zhuǎn)換需要添加強制類型轉(zhuǎn)換符
		//強制類型轉(zhuǎn)換時可能引起精度損失,謹慎使用
		int c = (int)b;
		
		//a是int類型
		//b是long類型
		//c是int類型
		//多種數(shù)據(jù)類型混合運算時先轉(zhuǎn)換成容量最大的再做運算
		//最終的結果是long類型,大容量無法直接賦值給小容量
		//所以編譯報錯了
		//int d = a + b + c;
		
		//解決以上編譯錯誤
		int d = (int)(a + b + c);
		System.out.println("d = " + d);
		//或者
		long d2 = a + b + c;
		System.out.println("d2 = " + d2);
		
//100L被當做long類型處理
		//x變量是long類型
		//不存在類型轉(zhuǎn)換
		long x = 100L;
		System.out.println("x = " + x);
	}
}

運行結果如下圖所示:

整數(shù)型測試

圖4-6:整數(shù)型測試

通過以上代碼的學習,我們知道小容量轉(zhuǎn)換成大容量叫做自動類型轉(zhuǎn)換,大容量轉(zhuǎn)換成小容量叫做強制類型轉(zhuǎn)換,強制類型轉(zhuǎn)換要想編譯通過必須添加強制類型轉(zhuǎn)換符,雖然編譯通過了,但運行階段可能出現(xiàn)精度損失,謹慎使用。

接下來我們一起來看看精度損失的情況:

運行結果如下圖所示:

圖4-7:精度損失

4個字節(jié)的int類型300強轉(zhuǎn)為1個字節(jié)的byte類型,最終的結果是44,為什么呢?首先300對應的二進制碼是:00000000 00000000 00000001 00101100,強制類型轉(zhuǎn)換的時候會變成1個字節(jié),這個時候底層是將前3個字節(jié)砍掉了,也就是最后的二進制碼是:00101100,這個二進制碼對應的是44。

接下來我們再來看一下如果精度損失之后成為負數(shù)的情況:

public class IntegerTypeTest03 {
	public static void main(String[] args) {
		int a = 300;
		byte b = (byte)a;
		System.out.println("b = " + b);
	}
}

運行結果如下圖所示:

圖4-8:精度損失

為什么以上的運行結果是-106呢?那是因為計算機在任何情況下都是采用二進制補碼的形式存儲數(shù)據(jù)的(至于為什么采用二進制補碼形式存儲數(shù)據(jù),這里就不再贅述了,畢竟我們不是做學術研究)。

計算機二進制編碼方式包括原碼、反碼、補碼。對于正數(shù)來說原碼、反碼、補碼是同一個。對于負數(shù)來說呢?負數(shù)的反碼是在其原碼的基礎上, 符號位不變,其余各個位取反,例如:-15的原碼是:10001111,-15反碼是:11110000。負數(shù)的補碼是其反碼再加1。例如:-15的補碼是11110000加1:11110001。換句話說-15最終在計算機上會采用11110001二進制來表示。

我們再來看看以上的程序:int a = 150。4個字節(jié)的150對應的二進制是:00000000 00000000 00000000 10010110,強轉(zhuǎn)時前3個字節(jié)砍掉,最終計算機存儲的二進制為:10010110,我們之前說過最終存儲在計算機中的是二進制補碼形式,也就是說10010110現(xiàn)在是二進制補碼形式,我們通過補碼推出原碼,負數(shù)的補碼是反碼+1,所以10010110減1就是反碼10010101,反碼的符號位不變,其余位取反就能得出原碼:11101010,而這個值就是-106。

接下來我們再來看一段程序,分析以下程序錯在哪里,為什么以及怎么解決?

public class IntegerTypeTest05 {
	public static void main(String[] args) {
		long num = 2147483648;
	}
}

編譯報錯了:

圖4-9:編譯錯誤提示信息

以上程序編譯報錯的原因是:java程序見到2147483648這個整數(shù)的時候,默認將其當做int類型來處理,但這個數(shù)字本身已經(jīng)超出了int類型的取值范圍,所以編譯報錯了,注意:這里編譯報錯的原因并不是說long類型存不下,long類型的變量完全可以存儲這個數(shù)字,以上程序出現(xiàn)的錯誤是在賦值之前,還沒有進行到賦值運算,數(shù)字本身已經(jīng)超出int類型范圍,自己崩掉了。怎么解決以上的問題呢?其實很簡單,我們只要讓java程序認為2147483648是一個long類型的數(shù)據(jù)就行了,也就是說在該數(shù)字后面添加L問題就解決了(long num = 2147483648L;)。

再來看一看整數(shù)類型還有沒有其它的知識點要學習,請看以下程序:

public class IntegerTypeTest06 {
	public static void main(String[] args) {
		byte b = 127;
		short s = 32767;
		char c = 65535;
		
		byte b1 = 128;
		short s1 = 32768;
		char c1 = 65536;
	}
}

編譯報錯了:

Java開發(fā)

圖4-10:編譯錯誤提示信息

通過以上測試,大家需要記住一個結論:當一個整數(shù)型的字面量沒有超出byte,short,char的取值范圍,可以將該字面量直接賦值給byte,short,char類型的變量。

主站蜘蛛池模板: 日本xxxxx久色视频在线观看 | 国产午夜大片 | 黄色片看 | 亚洲国产精品一区 | 欧美午夜理伦三级理论三级 | 野花的视频在线观看免费高清 | 狠狠色综合久久久久尤物 | 黄网站观看| 免费看欧美一级特黄α大片 | 欧美日本韩国国产 | 韩国免费一级成人毛片 | 天天做天天操 | 亚洲一区中文字幕在线观看 | 日韩三级在线观看 | 亚洲欧美综合 | 一级黄色免费观看 | 日韩中文字幕久久精品 | 免费成人黄色 | 亚洲伦理 | 色视频免费在线观看 | 精品导航第一导航 | 国产精品成人影院 | 日韩在线视频中文字幕 | 毛片网站视频 | 日韩亚洲欧美视频 | 欧美亚洲国产成人高清在线 | 亚洲第一中文 | 日韩欧美久久一区二区 | 精品欧洲videos | 最近最新免费中文字幕高清 | 91嫩草国产在线观看免费 | 麻豆一区 | 高清一级毛片免免费看 | 天堂资源在线播放 | 又www又黄又爽啪啪网站 | www激情| 理论片中文| 免费h福利漫画网站在线 | 最近免费中文字幕大全高清10 | 福利片中文 | 天天干天天操天天 |