數據過大和溢出
簡介
-
最大值的補碼
0b 01111111_11111111_11111111_11111111
0b 0000000_0000000_0000000_0000000
0b 0000000_0000000_0000000_0000001 -
1的補碼
0b 0000000_0000000_0000000_0000001
0b 01111111_11111111_11111111_11111110
0b 01111111_11111111_11111111_11111111 -
結果
0b 1000000_0000000_0000000_0000000
0b 01111111_11111111_11111111_11111111
0b 1000000_0000000_0000000_0000000
0b01111111=127
0b0000000=0
0b1000001=-1
0b1000010=-2
0b1000000=-128
127+1=-128
-128-1=127
基本類型的自動轉換
簡介
- long能轉float 但是會多小數點
- bool 不參與運算
基本類型的強制轉換
簡介
- int轉byte 是默認在編譯器底層實現 byte b = 125;
編譯器在底層發現可以轉換 - 可能丟失精度
表達式類型的自動提升
簡介
- 只是聲明的時候底層幫int 25轉byte
- 3 是 int, b4是byte聲明,會編譯錯誤
- byte = int + int 編譯錯誤
- byte,short,char自動提升爲int
算術運算符
簡介
- 注意區分是字符還是字符串
- NaN 不等於自己
- 正無窮大 100.0/0.0
- 負無窮大 - 100.0/0.0