使用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