// 低 ---------------------------------------> 高
// byte,short,char-->int-->long-->float-->double
int i =
128;
byte j =
(byte
) i;
int k =10;
int l =20;
system.out.
println
(i);
//128
system.out.
println
(j);
//-128 記憶體溢位
//精度丟失問題
system.out.
println((
int)
(23.7))
;//23
system.out.
println((
int)(-
46.8))
;//-46
system.out.
println
(k/l)
;//0
//***********************************
//操作大數的時候注意記憶體溢位問題
//jdk7新特性:數字間可加下劃線來分割
int a =
10_0000_0000;
int b =20;
int c = a*b;
long d = a*b;
//轉換之前就存在記憶體溢位問題了
long e =
(long
)a*b;
system.out.
println
(c);
//-1474836480
system.out.
println
(d);
//-1474836480
system.out.
println
(e);
//2000000000
//***********************************=
byte a =10;
short b =20;
int c =30;
long d =40;
system.out.
println
(a+b)
;//int型別
system.out.
println
(a+b+c)
;//int型別
system.out.
println
(a+b+c+d)
;//long型別
//***********************************===
int a =10;
int b =20;
string c =
"30"
;//用+連線時,從左開始出現string型別 之前 是做 加法
//用+連線時,從左開始出現string型別 之後 是做 字串拼接
system.out.
println
(a+b)
;//30
system.out.
println
(a+b+c)
;// 3030
system.out.
println
(c+a+b)
;// 301020
C C 內建型別轉換注意點
當無符號整數強制轉,則高位位元組被丟棄 unsigned short a 0xabcd 0x0022fa80 cd ab cc cc unsigned char b unsigned char a 0x0022fa77 cd cc cc cc b 0xcd 高位位元組0xab 被丟棄 當窄型別向寬型...
基本資料型別轉換的注意點
注意 操作比較大的數時,要留意是否溢位 結果比表示範圍大 尤其是對整數進行操作時 int money 1000000000 10億 10億在int的表示範圍內 int years 20 返回的total是負數,因為超過了int的範圍溢位了 int total money years 結果是int,因...
unsigned 型別減法注意點
新年第一天,執行新年計畫,每日一記,大小皆宜。今天碰到乙個小問題,不引人注目,卻也會是個大坑,留下警示自己吧。中有兩個unsigned int相減的公式 unsigned int a 1 unsigned int b 2 那麼 int c a b 等於多少呢?乙個小細節,都以為是 1,沒問題!可是g...