static void OutBitInt(String str,int i){
System.out.print(str+",int: "+i+" ,binary:");
System.out.print(" ");
for(int j=31;j>=0;j--) {
if(((1<<J)&I)!=0) System.out.println(); System.out.print(?0?); else System.out.print(?1?); }
上面的方法怎么就能转二进制显示了呀?
System.out.print(str+",int: "+i+" ,binary:");
System.out.print(" ");
for(int j=31;j>=0;j--) {
if(((1<<J)&I)!=0) System.out.println(); System.out.print(?0?); else System.out.print(?1?); }
上面的方法怎么就能转二进制显示了呀?
if(((1<<J)&I)!=0)先移位,后与
(1<<j)&i就能知道i第j位(从0开始数)是不是0
如果i = 3, i的二进制表示就是00000000 00000000 00000000 00000011
(1<<31)&i就是
00000000 00000000 00000000 00000011
&10000000 00000000 00000000 00000000
结果是0,所以i的最左边就是0
(1<<30)&i就是
00000000 00000000 00000000 00000011
&01000000 00000000 00000000 00000000
结果还是0,输出0
...
(1<<1)&i
00000000 00000000 00000000 00000011
&00000000 00000000 00000000 00000010
结果是1(1<<0)&i
00000000 00000000 00000000 00000011
&00000000 00000000 00000000 00000001
结果是1
所以i的二进制输出是
00000000 00000000 00000000 00000011