【问题标题】:how is the value coming after type promotion?类型提升后价值如何?
【发布时间】:2014-09-17 15:12:10
【问题描述】:

在类型提升示例中,我得到的输出为 515。

我知道charc(即'a')在提升为int后的值;但是在将 char 提升到int 时,char 的值是在什么系统上决定的?

public class Main {
    public static void main(String args[]) {
        char c = 'a';
        int i = 50000;
        int result = i / c;
        System.out.println("i / c is " + result);
    }
}

【问题讨论】:

  • 我猜,你想知道的是Java uses Unicode'a' 的值可以在 here 中找到。
  • 这里的值被提升到更高的一个 BYTE>CHAR>INT>lONG >FLOAT>DOUBLE (必须始终是方法)那么为什么在函数重载的情况下反之亦然?例如:- 'class OverloadDemo{ void test(int a) { System.out.println("a: " + a); } public static void main(String args[]) { OverloadDemo ob = new OverloadDemo(); ob.test(10l); } ' 这里的 int 值也应该提升为 long 不是吗,反之亦然

标签: java type-promotion


【解决方案1】:

c 转换为其 ASCII 值 97

所以,50000 / 97 ~= 515 因为整数除法(结果中没有获得浮点小数)。

【讨论】:

  • @Joiner-On Stack Overflow,格式化不是什么大不了的事,实际上一个人的观点或答案必须是正确的!另外,我在这个答案中没有找到任何格式不佳的原因,因为我试图保持更少和更清洁!我希望这个理由不能被贬低答案!
猜你喜欢
  • 2021-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多