Java java.lang.Integer类中的代码注释“HD,Figure”是什么意思?

时间:2017-10-12 12:48:14

标签: java jvm openjdk jvm-hotspot

例如,JDK方法java.lang.Integer.numberOfLeadingZeros(int):

public static int numberOfLeadingZeros(int i) {
    // HD, Figure 5-6
    if (i == 0)
        return 32;
    int n = 1;
    if (i >>> 16 == 0) { n += 16; i <<= 16; }
    if (i >>> 24 == 0) { n +=  8; i <<=  8; }
    if (i >>> 28 == 0) { n +=  4; i <<=  4; }
    if (i >>> 30 == 0) { n +=  2; i <<=  2; }
    n -= i >>> 31;
    return n;
}

代码注释' HD,图5-6 '是什么意思?

2 个答案:

答案 0 :(得分:5)

HD = Hacker's Delight。请参阅the javadoc

  

实施说明:&#34; bit twiddling&#34;的实现方法(例如highestOneBitnumberOfTrailingZeros)基于来自Henry S. Warren,Jr。的Hacker's Delight的材料(Addison Wesley,2002)。

答案 1 :(得分:0)

(\d+)(\w)中也有这样的注释。

例如,java.lang.Long中的java.lang.Math方法:

addExact

有关Hacker's Delight的信息,我们也可以参考: http://hackersdelight.org/