大佬教程收集整理的这篇文章主要介绍了这为什么有效? (在c中找到奇数),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
for (unsigned int i = 1; i <= 100; i++) { if (i & 0x00000001) { std::cout << i<<","; } }
为什么(以及如何):if(i& 0x00000001)算出奇数?
&安培;是逐位’AND’运算符,用于执行二进制数字(位)操作.
我和我1将i的所有二进制数字转换为零,最后一个除外.
将得到的1位数转换为布尔值,直接用if语句进行求值.
下图显示了i的最后16位二进制数字,以及它们发生了什么.
i: i in binary: i & 1 in binary: convert to Boolean ---- ------------------- ------------------- --------------------- 1 0000000000000001 0000000000000001 true 2 0000000000000010 0000000000000000 false 3 0000000000000011 0000000000000001 true 4 0000000000000100 0000000000000000 false 5 0000000000000101 0000000000000001 true 6 0000000000000110 0000000000000000 false 7 0000000000000111 0000000000000001 true 8 0000000000001000 0000000000000000 false ... ... ... ... 99 0000000001100011 0000000000000001 true 100 0000000001100100 0000000000000000 false
以上是大佬教程为你收集整理的这为什么有效? (在c中找到奇数)全部内容,希望文章能够帮你解决这为什么有效? (在c中找到奇数)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。