C++ 使用位运算将数的第 n 位设为 1
以下是使用位运算符实现将一个数的第 n 位设为 1 的 C++ 程序:
#include <iostream>
using namespace std;
int main()
{
int num; // 原数
int n; // 第 n 位
cout << '请输入一个整数:';
cin >> num;
cout << '请输入要设为 1 的位(从右往左数):';
cin >> n;
// 将第 n 位设为 1
num |= (1 << (n - 1));
cout << '设为 1 后的结果为:' << num << endl;
return 0;
}
程序中使用了按位或运算符(|)和按位左移运算符(<<)。
按位或运算符的作用是将两个数的二进制对应位进行或运算,只要其中有一个为 1,结果就为 1,否则为 0。在本程序中,将原数 num 和一个只有第 n 位为 1 的数进行按位或运算,即可将第 n 位设为 1。
按位左移运算符的作用是将一个数的二进制表示向左移动指定的位数,移动后低位补 0。在本程序中,将数 1 左移 n-1 位,即可得到只有第 n 位为 1 的数。
原文地址: https://www.cveoy.top/t/topic/oJMG 著作权归作者所有。请勿转载和采集!