为什么('1'+'1')在Java中输出98?

Why does ('1'+'1') output 98 in Java?

我有以下代码:

class Example{
    public static void main(String args[]){

        System.out.println('1'+'1');

    }
}

为什么会输出98

'1' 是一个 char 文字,+ 运算符位于两个 char 之间 returns 和一个 int。字符 '1' 的 unicode 值为 49,所以当您将其中两个相加时,您会得到 98。

49是1的ASCII值。所以'1' +'1'等于49 + 49 = 98.

在 java 中,每个字符文字都与一个 Integer.

的 ASCII 值相关联

您可以找到所有的 ASCII 值 here

'1' 映射到 ASCII 值 49(int 类型)。
因此 '1' + '1' 变成 49 + 49 这是一个整数 98.

如果您将此值转换为 char 类型,如下所示,它将打印 98 的 ASCII 值,即 b

System.out.println( (char) ('1'+'1') );

如果您的目标是连接 2 个字符(意思是,您期望示例中的 "11"),请考虑先将它们转换为字符串。通过使用双引号 "1" + "1" 或如前所述 here .

'1' 表示一个字符,计算结果为该字符对应的 ASCII 值,对于 1 为 49。将其中两个相加得到 98.

'1' 是聊天文字,它表示 ASCII 值,即 49 所以 '1'+'1'=98.

的总和

这里分享ASCIItable的图片。如果您从 0 开始逐列计数,那么 1 排在第 49 位。抱歉,我附上图片以便更好地解释。

'1' 是一个 char 文字,两个字符之间的 + 运算符 returns 是一个整数。字符“1”的 unicode 值为 49,因此 49 + 49 等于 98。