代码的注释是什么';HD,图';在Java.lang.Integer类中是什么意思?
例如,JDK方法java.lang.Integer.numberOfLeadingZeros(int):代码的注释是什么';HD,图';在Java.lang.Integer类中是什么意思?,java,jvm,openjdk,jvm-hotspot,Java,Jvm,Openjdk,Jvm Hotspot,例如,JDK方法java.lang.Integer.numberOfLeadingZeros(int): public static int numberofleadingzero(int i){ //HD,图5-6 如果(i==0) 返回32; int n=1; 如果(i>>>16==0){n+=16;i>24==0){n+=8;i>28==0){n+=4;i>30==0){n+=2;i>31; 返回n; } 代码注释“HD,图5-6”是什么意思?HD=黑客的喜悦。请参阅: 实施说明:“比特
public static int numberofleadingzero(int i){
//HD,图5-6
如果(i==0)
返回32;
int n=1;
如果(i>>>16==0){n+=16;i>24==0){n+=8;i>28==0){n+=4;i>30==0){n+=2;i>31;
返回n;
}
代码注释“HD,图5-6”是什么意思?HD=黑客的喜悦。请参阅: 实施说明:“比特旋转”方法(如
highestOneBit
和numberOfTrailingZeros
)的实施基于小亨利·S·沃伦的《黑客的喜悦》(Addison Wesley,2002)中的材料
在
java.lang.Long
和java.lang.Math
中也有这样的注释
例如,java.lang.Math
中的addExact
方法:
public static int addExact(int x, int y) {
int r = x + y;
// HD 2-12 Overflow iff both arguments have the opposite sign of the result
if (((x ^ r) & (y ^ r)) < 0) {
throw new ArithmeticException("integer overflow");
}
return r;
}
公共静态整数加法器(整数x,整数y){
int r=x+y;
//HD 2-12溢出iff两个参数的结果符号相反
如果((x^r)和(y^r))<0{
抛出新的算术异常(“整数溢出”);
}
返回r;
}
关于Hacker高兴的信息,我们还可以参考:这看起来像是对文学的参考Cool man,我想我找到了numberOfLeadingZeros()方法没有负条件逻辑的原因:
if(I@Jason:我非常确定ntz
的意思是“尾随零的数量”,而不是“前导零的数目”。@Holger我没拼出来,函数名应该是nlz(),这是HD书籍的完整副本:intnlz(无符号x){intn;if(x==0)返回(32);n=1;if((x>>16)==0{n=n+16;x=x24)==0{n=n+8;x=x>28)==0{n=n+4;x=x>30)==0{n=n+2;x=31);返回n;
public static int addExact(int x, int y) {
int r = x + y;
// HD 2-12 Overflow iff both arguments have the opposite sign of the result
if (((x ^ r) & (y ^ r)) < 0) {
throw new ArithmeticException("integer overflow");
}
return r;
}