二进制表示形式-C ++转换

时间:2018-10-12 19:04:33

标签: binary numbers

a = 13;
for (b = 8∗ sizeof(int)−1; b >= 0; b−−)
    cout << ( (a & (1U << b)) > 0 );  

有人可以解释一下,“ cout”发生了什么?有条件吗? 我的意思是,为什么它必须为“> 0”? 在这个“线索”中正确的行动顺序是什么? 谢谢

1 个答案:

答案 0 :(得分:0)

(a & (1U << b)) > 0如果检查通过,则返回1,如果不通过,则返回0。此结果是cout打印的结果。 &对两个整数执行按位运算,而1U << b1进行左移b位(U只是告诉编译器对待值为无符号)。