型別轉換注意點

2021-10-10 07:50:33 字數 1775 閱讀 9123

// 低 ---------------------------------------> 高

// 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...