怎麼會出現這種情況:char轉換爲字節? (JAVA)
char a = '\uffff'; //Highest value that char can take - 65535
byte b = (byte)a; //Casting a 16-bit value into 8-bit data type...! Isn't data lost here?
char c = (char)b; //Let's get the value back
int d = (int)c;
System.out.println(d); //65535... how?
基本上,我看到一個char
是16位。因此,如果您將它投入byte
,那麼如何避免數據丟失? (鑄造成int後的值相同)
在此先感謝您回答我這個小小的無知問題。 :P
編輯:哇,發現我的原始輸出實際上按預期做,但我只是更新上面的代碼。基本上,一個字符被轉換成一個字節,然後轉換回char,並保留其原始的2字節值。這是如何發生的?
它爲我打印`-1`。 – darioo 2011-02-10 15:03:24