【Java學習專題】基本數據類型轉換

基本數據類型(四類八種)

  • 整數型:byte、shout、int、long
  • 浮點型:float、double
  • 布爾型:boole
  • 字符型:char

思維導圖

基本數據類型間的轉換:

實例代碼:

public class Test01{
	public static void main(String[] args){
		int a = 129;
		byte b =(byte)a;
		System.out.println(b);//b爲-127
	}
}

分析:

  • 128的二進制是:10000000
  • int類型的128二進制表示爲:00000000 00000000 00000000 10000001
  • 這裏的輸出結果是-127
  • 爲什麼會這樣呢?
  • 原因在於int類型的變量在內存中是佔32位
  • 強制轉換爲byte類型,byte是8位
  • 也就是說byte類型變量接收轉變後會將int類型的前面24位會捨去
  • 只按照8位算
  • byte類型的128是:10000001
  • 由於最高位是符號位:1代表是一個負數
  • 而存在內存中的這八位是(負數在計算機中是以補碼的形式存在)
  • 補碼轉換成原碼:減1取反
  • 所以:100000001-1=10000000 取反:11111111
  • 最高位是符號位,所以-(64+32+16+8+4+2+1)=-127

注意:綜上所述,強制轉換需謹慎,不超過轉換後的範圍還好,超過了範圍會失精度。

運算符

+=

 a+=b

a=a+b

-= 

a-=b

a=a-b

*= 

a*=b

a=a*b

/=

 a/=b

a=a/b

%=

a%=b 

a=a%b

注意:byte a += 3; byte a = a +3  他們是不同的,因爲a + 3是一個int類型,如果要賦值給byte a 就需要強制轉換。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章