基本數據類型(四類八種)
- 整數型: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 就需要強制轉換。