gpt4 book ai didi

Java : Operators and Typecasting

转载 作者:行者123 更新时间:2023-11-29 10:13:33 25 4
gpt4 key购买 nike

long value = 0x88888888 ;
int i = (int) (value & 0xff);

上述表达式的求值是如何发生的?是吗

int i = (int)value & (int)0xff ;

还是先评估按位和运算?我越来越困惑了:-|

最佳答案

让我们看一下 bytecode :

 public static void main(java.lang.String[]);
Code:
0: ldc2_w #35 // long -2004318072l
3: lstore_1
4: lload_1
5: ldc2_w #37 // long 255l
8: land
9: l2i
10: istore_3
11: return
}

如您所见,十六进制 0xff 首先转换为 long,然后使用 按位和 通过用0xff 然后转换为int

  • lload_1 从局部变量 1 加载一个 long 值

  • ldc2_w 将常量池(double 或 long)中的常量#index 压入堆栈

  • land 按位和两个 long
  • l2i 将 long 转换为 int

关于Java : Operators and Typecasting,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25189356/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com