You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java字符相加结果存疑:为何输出116?求字符'2'的ASCII值

为什么你的Java代码输出116而不是68?

嘿,我来帮你拆解这个问题,核心是你混淆了字符'2'和整数2的区别!

问题出在哪?

你的代码里b='2'是字符类型,不是你以为的整数2。Java中char类型在参与算术运算时,会自动转换为对应的ASCII码值(int类型)来计算:

  • 字符'B'的ASCII值是66
  • 字符'2'的ASCII值是50
  • 所以a + b实际执行的是66 + 50 = 116,这个结果是int类型,直接打印就输出116了。

怎么得到你预期的68?

如果你想把'B'的ASCII值和数字2相加,需要把字符'2'转换成对应的整数,或者直接用整数2:

  • 方法1:直接用整数2替换字符'2':
    char a = 'B';
    int b = 2;
    int c = a + b;
    System.out.println(c); // 输出68
    
  • 方法2:把字符'2'转为对应的数字值:
    char a = 'B', b='2';
    int numB = Character.getNumericValue(b); // 把字符'2'转成整数2
    int c = a + numB;
    System.out.println(c); // 输出68
    

字符'2'的ASCII值是多少?

字符'2'的ASCII值是50。你可以用一行代码快速验证:

System.out.println((int)'2'); // 输出50

内容的提问来源于stack exchange,提问作者Amarnath Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:35:22