Имеется такая задача:
Ввести целое число A. Инвертировать все биты с 4 по 8, включая эти биты. Вывести полученное число.
#include <iostream>
using namespace std;
void main()
{
setlocale(LC_CTYPE, "Russian");
int A; char num[33];
cout << "Введите число А ";
cin >> A;
cout << endl;
_itoa_s(A, num, 2);
cout << "Число А в двоичном виде: " << num << endl;
unsigned int mask = 1 << 4;
for (int i = 0; i <= 3; i++) {
cout << 'х';
A ^= mask;
}
_itoa_s(A, num, 2);
cout << num;
}
Как можно ее решить используя побитовые операции, у меня были некоторые идеи с маской, но я не знаю как правильно ее реализовать.
Я думал можно создать маску вида: 10000 (1 в 4-ом бите) и каждый раз сдвигать на один до 8ого бита. При этом делая какую-то проверку