如何在 C/C++ 中设置、清除和切换位?

您可以在 C、C++、Python 和所有其他支持这些操作的编程语言中使用按位运算符设置清除位和切换位。您还需要使用位移运算符将位移到正确的位置。

设置一点

要设置一点,我们需要使用按位 OR 运算符 -

例子

#include<iostream>

using namespace std;

int main() {

   int i = 0, n;

   

   // 输入要设置的位:

   cin >> n;

   i |= (1 << n); // 取 i 和 1 移位 n 个位置的 OR

   cout << i;

   return 0;

}

输出

如果您输入 4,这将给出输出 -

16

因为 16 相当于二进制的 10000。

清零一点

为了清除一点,我们需要使用按位与运算符(&)和按位非运算符(~) -

例子

#include<iostream>

using namespace std;

int main() {

   // i 是二进制的 110

   int i = 6, n;

   

   // 输入要清除的位:

   cin >> n;

   i &= ~(1 << n); // 取 i 和 1 移位 n 个位置的 OR negated

   cout << i;

   return 0;

}

输出

如果您输入 1,这将给出输出 -

4

因为 110 变成了 100,相当于十进制的 4。

稍微切换

要稍微切换,我们需要使用按位异或运算符 (^) -

例子

#include<iostream>

using namespace std;

int main() {

   // i 是二进制的 110

   int i = 6, n;

   

   // 输入要切换的位:

   cin >> n;

   i ^= (1 << n); // 对 i 和 1 个移位的 n 个位置进行 XOR

   cout << i;

   return 0;

}

输出

如果您输入 1,这将给出输出 -

4

因为 110 变成了 100,相当于十进制的 4。

以上是 如何在 C/C++ 中设置、清除和切换位? 的全部内容, 来源链接: utcz.com/z/359824.html

回到顶部