【问题标题】:implement this variable in java在java中实现这个变量
【发布时间】:2010-05-15 07:19:27
【问题描述】:

假设代码如下:

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

这在 Java 中是什么类型?如何在 Java 中实现这一点?

【问题讨论】:

  • 你应该接受一些答案

标签: java algorithm


【解决方案1】:

Java 没有无符号 long,但 1L 是 64 位有符号 long 文字。

参考文献

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

关于计数操作数的屏蔽

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

下面的 sn-p 显示了由于这个原因,在 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"

相关问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-23
    • 2016-04-14
    • 2015-09-30
    • 1970-01-01
    • 1970-01-01
    • 2013-05-10
    相关资源
    最近更新 更多