小编wak*_*amo的帖子

字符串成字符?(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?
Run Code Online (Sandbox Code Playgroud)

基本上,我看到a char是16位.因此,如果将其转换为a byte,为什么没有数据丢失?(转换为int后的值相同)

在此先感谢您回答我这个无知的小问题.:P

编辑:哇,发现我的原始输出实际上按预期执行,但我刚刚更新了上面的代码.基本上,将一个字符强制转换为一个字节,然后将其强制转换为char,并保留其原始的2字节值.这是怎么发生的?

java int byte char primitive-types

17
推荐指数
3
解决办法
7万
查看次数

标签 统计

byte ×1

char ×1

int ×1

java ×1

primitive-types ×1