level 3
今天做题位移动实现 Integer.toBinaryString()方法。
自己做完了不太完美看了一下习题答案是用Integer.numberOfLeadingZeros(int i) 方法知道位数的。请问 numberOfLeadingZeros(int i) 方法怎么实现,说说思路就行了
2012年05月01日 17点05分
1
level 3
public class My0405 {
public static void main(String[] args){
int b=7553,c,d;
if(Integer.numberOfLeadingZeros(b)==32)
System.out.print(0);
else
for(int i=Integer.numberOfLeadingZeros(b);i<32;i++){
c=b<<i;
d=c>>>31;
System.out.print(d);
}
System.out.println();
System.out.println(Integer.toBinaryString(b));
}
}
2012年05月01日 17点05分
2
level 3
学会自己看源码 唉, Myeclipse都有自动关联源码功能
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; }
2012年05月01日 17点05分
3
level 3
Ctrl + 鼠标左击 你要看的那个方法 就进去了
2012年05月01日 17点05分
5
level 3
你用的Myeclipse 几 我用Myeclipse 9 是自动关联的 可以直接查看Jdk的源代码
2012年05月01日 17点05分
8
level 3
你哪个看到的是编译后的文件 你可以百度下 怎么关联源文件
2012年05月01日 17点05分
9