Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите решить задачу. Надо написать код на С++

Артем Малышев Ученик (106), на голосовании 23 часа назад
Написать программу, которая позволит ввести целое число и, используя битовые операции, сделать в нем, сделать в нем, чтобы нечетные биты стали равны четным, стоящим справа, вывести результат. Например, число B3C516 программа превратит в число 33СF16.
Голосование за лучший ответ
Hayk Babayan Ученик (217) 1 месяц назад
#include <iostream>
#include <iomanip>

uint32_t transformBits(uint32_t num) {
uint32_t evenBits = num & 0xAAAAAAAA; // Извлекаем четные биты (маска 10101010...)
uint32_t newNum = evenBits >> 1; // Сдвигаем четные биты вправо (копируем в нечетные позиции)
return newNum;
}

int main() {
uint32_t num;
std::cout << "Введите 16-ричное число: ";
std::cin >> std::hex >> num; // Ввод числа в 16-ричной системе

uint32_t result = transformBits(num);

std::cout << "Результат: " << std::hex << std::uppercase << result << std::endl;
return 0;
}
Андрей Высший разум (481803) 1 месяц назад
Ты что-то путаешь: B3C516 превратится в 33CF3C.
 #include <iostream>
#include <iomanip>

using namespace std;

int main() {
uint64_t n;
cin >> hex >> n;
n &= 0x5555555555555555; // очищаем нечётные биты
cout << hex << (n | (n << 1));
}
Похожие вопросы