这是代码,它可以工作,它将 66 转换为 B 的 ASCII 等价物。
int ascii = 66;
char character = (char) ascii;
我不明白的是,它是如何工作的?如果这是一份试卷,你会写什么?
问题是,描述程序如何将其转换为“B”。是char
函数吗?
"char" => "int" 称为加宽基元转换 ,"int => char" 称为收窄基元转换
在 Java 中,char 只是一个 16 位整数。当将 int(32 位整数)转换为 char 时,您将保留 int 的 16 个最低有效位,并丢弃高 16 位。这称为缩小转换。Java 字符表示为 Unicode 字符集的成员。'B'的 Unicode 值为66 。
int ascii = 66;
整数值 66 分配给ascii
。
char 字符 = (char) ascii;
character
存储整数的前 16 位ascii
。存储 66 不超过 16 位,因此 char 变量正确