黑马程序员技术交流社区
标题:
关于进制问题
[打印本页]
作者:
403806022
时间:
2016-4-12 23:07
标题:
关于进制问题
14.设以下是应用程序中定义的方法printBinary,若在其main方法中有方法调用语句printBinary(2),则输出的结果是 ( B )。
static void printBinary(int i) {
System.out.print(i + "的2进制数表示为:\t");
for(int j = 31; j >=0; j--)
if(((1 << j) & i) != 0)
System.out.print("1");
else
System.out.print("0");
System.out.println();
}
A) 00000000000000000000000000000001
B) 00000000000000000000000000000010
C) 00000000000000000000000000001111
D) 00000000000000000000000000000000
请问这题怎么分析啊
作者:
wxz
时间:
2016-4-12 23:27
我们来先看看if中的条件若成立,即(1<<j)&i==1,&是与运算位,i=2,故1<<j是2,<<是向左移,根据运算规则,可以得到j=1,因此可以得到只有j=1时才会执行if中的语句,输出1;j为其他值时执行else语句,输出0。答案自然就是B
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2