a = 13;
for (b = 8∗ sizeof(int)−1; b >= 0; b−−)
cout << ( (a & (1U << b)) > 0 );
有人可以解释一下,“ cout”发生了什么?有条件吗? 我的意思是,为什么它必须为“> 0”? 在这个“线索”中正确的行动顺序是什么? 谢谢
答案 0 :(得分:0)
(a & (1U << b)) > 0
如果检查通过,则返回1,如果不通过,则返回0。此结果是cout
打印的结果。 &
对两个整数执行按位运算,而1U << b
对1
进行左移b
位(U
只是告诉编译器对待值为无符号)。