问点高深java高手进
java吧
全部回复
仅看楼主
level 3
jw1227 楼主
今天做题位移动实现 Integer.toBinaryString()方法。
自己做完了不太完美看了一下习题答案是用Integer.numberOfLeadingZeros(int i) 方法知道位数的。请问 numberOfLeadingZeros(int i) 方法怎么实现,说说思路就行了
2012年05月01日 17点05分 1
level 3
jw1227 楼主
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
jw1227 楼主
怎么看啊,不太明白。
2012年05月01日 17点05分 4
level 3
Ctrl + 鼠标左击 你要看的那个方法 就进去了
2012年05月01日 17点05分 5
level 3
jw1227 楼主
好像没怎么懂,看到里面一大堆的代码?
2012年05月01日 17点05分 6
level 3
jw1227 楼主
是这些吗?
2012年05月01日 17点05分 7
level 3
你用的Myeclipse 几 我用Myeclipse 9 是自动关联的 可以直接查看Jdk的源代码
2012年05月01日 17点05分 8
level 3
你哪个看到的是编译后的文件 你可以百度下 怎么关联源文件
2012年05月01日 17点05分 9
level 3
jw1227 楼主
哦,谢谢,我百度一下。
2012年05月01日 17点05分 10
level 3
jw1227 楼主
百度了一下,搞定。
2012年05月01日 17点05分 11
level 3
jw1227 楼主
思路还有不太懂
2012年05月01日 18点05分 12
1