java - java中char变量的计算

标签 java math char apostrophe

我有一项学校作业,其中一项任务是解释大量微小的计算,并解释为什么 java 会为您提供它所提供的输出..

计算之一是:

1 + '2' + 3

对我来说,这给出了一个词汇错误,因为老师在我的系统中使用了错误的“撇号”,但我和其他同学交谈过,他们告诉我他们得到了实际的输出,所以我开始阅读它,并发现它应该表示一个 char 变量,而且我还发现了系统特定类型,因此我更改了适合我的系统的符号,现在我得到了答案54。 .

我看不到其中的逻辑,我尝试用 char 变量在谷歌上搜索添加/计算/数学,但没有找到任何可以很好解释的内容。

所以我向你们求助,编码人员,有一天我可能会成为其中的一员,帮助我理解这一点的逻辑..

这开始是一项家庭作业,我可能可以通过回答它给出了一个词法错误来完成,因为我的编译器不理解该符号,但现在它达到了我的好奇心,我真的很想知道如何java设法得到这个答案..

感谢您就此事提供的任何帮助! :)

我发现我无法制作“作业”标签,所以我希望我可以把它放在这里:)

最佳答案

在 Java 中,char 通过 UTF-16 直接映射到 int。不过,对于大多数常见字符,将 char 值转换为 int 会生成其在 ascii 表中的索引。 + 不是对字符的操作,而是对整数的操作。因此,java 采用 2 并在思考“我无法添加这个”之后,意识到如果将其转换为 int 就可以添加它。 Ascii Table

正如您在表中看到的,“2”的索引为 50,因此 1 + 50 + 3 = 54。

关于java - java中char变量的计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25593074/

相关文章:

arrays - 长度为 n 的数组中长度为 3 的不同子序列的数量

在 C 中创建动态 3D 数组

java - canvas.drawBitmap( bitmap, null, RectF, null ) 不绘制

java - 在对数函数中使用递归幂函数,无需 Math.functions

java - 如何在方法中返回枚举

algorithm - O(n.logn) 中的 Josephus 排列(移除顺序)

C++ 2440 错误 - 编译器认为字符串是 const char?

c++ - 将 char * 与字符串文字进行比较的问题

java - Android:如何将字符串转换为日期

java - 如何将计划任务与还使用 keycloak 提供网页的客户端一起使用?