【发布时间】:2018-10-08 04:05:50
【问题描述】:
考虑以下代码:
System.out.println('G'+2);
输出为 73。我能知道为什么以及如何操作吗?
【问题讨论】:
-
因为字符
G的int值是71? -
前两行是什么?
考虑以下代码:
System.out.println('G'+2);
输出为 73。我能知道为什么以及如何操作吗?
【问题讨论】:
G的int值是71?
在 java 中,char 在 UTF-16 编码中占用 16 位。
G 的unicode 是U+0047,二进制为0000 0000 0100 1111。
当您将char 和int(32 位)相加时,char 将通过在其二进制表示的开头插入0 转换为int。所以0000 0000 0100 1111 被转换为0000 0000 0000 0000 0000 0000 0100 1111(十进制,71)。
这就是你得到73的原因。
【讨论】:
convert 听起来更合理。
在代码中,您将向 int 添加字符。 字符“G”的值为:71
更多详情请参见:ascii table
【讨论】:
取G的ascii值加2。
【讨论】: