在java中实现这个变量

时间:2010-05-15 07:19:28

标签: java algorithm

假设代码是这样的:

pattern_mask[pattern[i]] &= ~(1UL << i);

这在Java中是什么类型的?我如何在Java中实现它?

1 个答案:

答案 0 :(得分:3)

Java没有未签名long,但1L是64位签名long字面值。

参考

  • JLS 4.2.1 Integral Types and Values
    • 适用于long,从-92233720368547758089223372036854775807,包括
  • JLS 3.10.1 Integer Literals
    • 如果整数文字后缀为ASCII字母longL(ell),则其类型为l;否则它是int类型。后缀L是首选,因为字母l(ell)通常很难与数字1(一)区分开来。

屏蔽计数操作数

移位计数被屏蔽:int移位仅低5位,long移位仅低6位。

以下代码段显示了由此产生的影响,1的转变与转移1L不同。

System.out.println(1 << 1); // prints "2"
System.out.println(1 << 33); // prints "2"
System.out.println(1L << 33); // prints "8589934592"
System.out.println(1L << 65); // prints "2"

相关问题