我正在备考,我刚刚发现在 Java 中从 byte 转换为 char 被认为是缩小的。按照书上的说法,char的存储方式和byte是一样的,但还是算窄化。谁能解释一下为什么?
还有,Byte转char也是一个缩窄!我认为 if A>B then B
我知道这是个愚蠢的问题。
最佳答案
byte
到 char
在 Java 中可以有效地被视为缩小转换,因为它引入了信息丢失的可能性。虽然 byte
确实是 8 位数量而 char
是 16 位数量,但请记住 char
是唯一的无符号原语输入 Java。这意味着将 byte
转换为 char
将截断任何负值。反向转换也在缩小,因为任何大于 127
的数字在转换为 byte
时都会被截断。 Java 的转换方式与 C++ 不同,其中 signed
到 unsigned
只是意味着编译器将以不同方式解释这些位,但实际数字不会改变。
关于java - 转换为 char 是否总是被认为是缩小的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34769927/