Computer >> Máy Tính >  >> Lập trình >> C ++

Sao chép các bit tập hợp trong một phạm vi trong C ++

Trong hướng dẫn này, chúng ta sẽ thảo luận về một chương trình sao chép các bit tập hợp của một số này sang một số khác trong phạm vi đã cho.

Đối với điều này, chúng tôi sẽ được cung cấp với hai số nguyên. Nhiệm vụ của chúng ta là xem các bit trong số đầu tiên và đặt các bit đó trong số thứ hai nếu chúng nằm trong phạm vi đã cho. Cuối cùng trả về chữ số được tạo.

Ví dụ

#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;
}

Đầu ra

Modified x: 14