C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了这为什么有效? (在c中找到奇数)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
for (unsigned int i = 1; i <= 100; i++) {
    if (i & 0x00000001) {
        std::cout << i<<",";
    }
}

为什么(以及如何):if(i& 0x00000001)算出奇数?

解决方法

0x00000001是二进制1,尽管它是用十六进制(base-16)表示法编写的.这是0x部分.

&安培;是逐位’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,请注明来意。