字符到字节?(爪哇)
2022-09-01 16:58:04
为什么会发生这种情况:
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?
基本上,我看到a是16位。因此,如果您将其转换为 ,为什么没有数据丢失?(转换为整型后的值相同)char
byte
提前感谢您回答我的这个无知的小问题。:P
编辑:哇,发现我的原始输出实际上按预期进行,但我刚刚更新了上面的代码。基本上,字符被转换为一个字节,然后又被转换回一个字符,并保留其原始的 2 字节值。这是如何发生的?