Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 범위의 세트 비트 복사

<시간/>

이 튜토리얼에서는 주어진 범위에서 한 숫자의 세트 비트를 다른 숫자로 복사하는 프로그램에 대해 논의할 것입니다.

이를 위해 두 개의 정수가 제공됩니다. 우리의 임무는 첫 번째 숫자의 비트를 보고 두 번째 숫자의 비트가 지정된 범위에 있는 경우 해당 비트를 설정하는 것입니다. 마지막으로 생성된 숫자를 반환합니다.

예시

#include <bits/stdc++.h>
using namespace std;
//copying set bits from y to x
void copySetBits(unsigned &x, unsigned y,
unsigned l, unsigned r){
   //l and r should be between 1 and 32
   if (l < 1 || r > 32)
      return ;
   for (int i=l; i<=r; i++){
      int mask = 1 << (i-1);
      if (y & mask)
      x = x | mask;
   }
}
int main() {
   unsigned x = 10, y = 13, l = 2, r = 3;
   copySetBits(x, y, l, r);
   cout << "Modified x: " << x;
   return 0;
}

출력

Modified x: 14