判断奇数和偶数
所有偶数的 2 进制表⽰中,最低位⼀定是 0 ,所有奇数的 2 进制表⽰中,最低位⼀定是 1 。所以将⼀个数字与 1 进⾏按位与运算,即可判断这个数是奇数还是偶数。
(x & 1) == 1, 说明x是奇数
(x & 1) == 0, 说明x是偶数
B2037 奇偶数判断 - 洛谷
#include <iostream>
using namespace std;
int n;
int main()
{
cin >> n;
if ((n & 1) == 1)
cout << "odd" << endl;
else
cout << "even" << endl;
return 0;
}
保留⼆进制位中的指定位
有时候需要从⼀个整数 x 的 2 进制中取出某个位或者某⼏个位,使取出的位置上保留原来的值,其他位置为 0 ,这时候可以使⽤⼀个值 m ,使 m 的 2 进制位中对应取出的位置为 1 ,其他位为 0 。
然后使这两个数按位与( x & m )即可。
⽐如:取出x= 0010101 1 2 00101011_{2} 001010112 的最低1位,则只需要将x= 0010101 1 2 00101011_{2} 001010112 与m= 0000000 1 2 00000001_{2} 000000012 (末尾 1 位是1 ,其余位为 0 )进⾏按位与运算。
00101011
& 00000001
------------
00000001
再⽐如:取出x= 0010101 1 2 00101011_{2} 001010112 的最低4位,则只需要将x= 0010101 1 2 00101011_{2} 001010112 与m= 0000111 1 2 00001111_{2} 000011112 (末尾 4 位是1 ,其余位为 0 )进⾏按位与运算。
00101011
& 00001111
------------
00001011
再⽐如:取出x= 0010101 1 2 00101011_{2} 001010112

最低0.47元/天 解锁文章
944

被折叠的 条评论
为什么被折叠?



