首页 > 解决方案 > 二进制表示 - C++ 中的转换

问题描述

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

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

标签: binarynumbers

解决方案


(a & (1U << b)) > 0如果检查通过则返回 1,否则返回 0。这个结果是由 打印的cout。对两个整数执行按&位与运算并按位1U << b执行左位移(只是告诉编译器将该值视为无符号)。1bU


推荐阅读