がどのように来るこれが起こる:Char into into byte? (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
EDIT:Woahは、私のオリジナル出力が実際に期待どおりに行ったことを知ったが、私はちょうど上記のコードを更新した。基本的に、文字は1バイトにキャストされ、次にcharにキャストされ、元の2バイトの値が保持されます。これはどうやって起こるのですか?
「-1」が表示されます。 – darioo
は-1をここに印刷します。 – Bozho
ここでも-1が印刷されます。 –