java中整型之間的轉換

2021-07-10 14:46:25 字數 510 閱讀 4398

先看下面一段**:

byte a = (byte)0x80000001;

int b = (int)0x80000001;

system.out.println(a);

system.out.println(b);

a = (byte)b;

system.out.println(a);

輸出結果為什麼呢?

結果是:

1-2147483647

1分析原因:從較大的型別從較小的型別做強制轉換的時候,直接擷取較小型別所需的位元組長度,而不考慮較大型別的符號型別

則a為00000001,b為10000000 00000000 00000000 00000001

a為正,b為負

而a = (byte)b; 與 a = (byte)b;實際是一樣的

從較小型別向較大型別提公升的時候就簡單了,值是一樣的,正數往前面填0,負數往前面填1

整型之間的轉換

這裡說一下c的強型別轉換,也是c 的static cast。在小端的機器實驗了一下,從位數多的型別 例如int64 轉到位數少的型別 例如int32 是直接擷取的,這種情形是十分簡單明瞭的。不過不同環境底層的策略可能不大一樣。而反過來,從位數少的到位數多的,就稍微複雜一點,在我的實驗環境中,例如從a...

Java中的實型與整型的相互轉換

因為實型比整型要多出小數部分,從整型轉為實型時不會有精度丟失,但是由實型轉為整型時則會丟失小數部分的資料。顯式轉換,也就是強制型別轉換,例如下面的 int i 123 double d double i int k int d 在以上 中,首先將int 型的變數轉換為 double 型,在賦值給變數...

java 中整型與字元型的相互轉換

字元型轉換成整型 1.轉換成int型 int integer num integer.parseint string str 2.轉換成long型 long long num long.parselong string str 3.轉換成short型 short short num short.pa...