使用C++更新数字中给定位置或索引的位
在这个问题中,我们需要更新数字的给定索引处的位。为了更新数字,我们可以对给定数字使用位操作。例如:
输入-1 −
N= 25 bit= 1 position= 2
输出 −
29
解释 − 给定的输入25可以用二进制表示为‘11001’,位置索引为‘2’,位为‘1’。在给定位置替换数字后,输出将为‘11101’,相当于‘29’。
解决这个问题的方法
在数字的给定位置或索引处,任务是用输入中给定的特定位来更新位。在给定位置更新位的方法是首先清除给定位置的位,然后执行二进制AND运算来更新位。
输入一个数字N,要更新的位为‘bit’,以及要在其上更新位的位 置或索引为‘position’。
一个void函数`updateBit(int &n, int bit, int position)`获取当前位的地址、位值和位的索引。该函数将通过用给定的位替换该位来打印数字的更新值。
清除给定位置的位,并将结果位添加到结果中。
创建一个掩码,并对结果执行AND运算。
对我们创建的掩码执行二进制OR运算,并对要在索引处更新的值执行右移运算。
示例
#include<iostream>
using namespace std;
void updateBit(int &n,int bit, int pos){
int clearBit= ~(1<<pos);
int mask= n & clearBit;
n= mask |(bit<<pos);
}
int main(){
int n=25;
int bit=1;
int pos=2;
updateBit(n,bit,pos);
cout<<n;
}输出
运行上面的代码将生成如下输出:
29
由于输入是25,其二进制表示为11001。将位置‘2’替换为‘1’后,它将变为二进制的11101,即29。
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP