Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Sao chép bit set trong khoảng cho trước trong C++


Chương trình sao chép các bit 1 (set bits) của một số sang số khác trong khoảng cho trước [l, r]. Trả về số sau khi sửa đổi.

Ví dụ

#include <bits/stdc++.h>
using namespace std;

void copySetBits(unsigned &x, unsigned y, unsigned l, unsigned r) {
    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;
}

Kết quả

Modified x: 14