【问题标题】:Conversion of primitive types to int将原始类型转换为 int
【发布时间】:2013-06-19 13:06:15
【问题描述】:

在对小于int 的原始类型进行按位运算时,它们被提升为int,并且在操作后它们被转换回它们的本机类型。

为什么我们不能简单地对原生类型进行操作?

【问题讨论】:

  • 已经在网站上询问过,某处与限制操作码(指令)的数量有关,如果您有兴趣,请搜索它。
  • 这里给出了答案:[byte 按位运算产生 int][1] [1]:stackoverflow.com/questions/2003003/…
  • 首先用谷歌搜索但找不到答案。谢谢链接。

标签: java


【解决方案1】:

普通 CPU 使用 32 位数字表示来进行这种算术运算。这意味着 CPU 的算术逻辑单元 (ALU) 中的寄存器很可能是 32 位的,这就是 CPU 的工作方式。很明显发生了隐式转换。

为什么 Java 不将它转换回那个“更小”的类型,我不知道。这是 Java 创造者的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-16
    • 2020-06-25
    • 2013-01-12
    • 1970-01-01
    • 2021-06-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多