В массиве коды четных элементов сдвинуть на 2 разряда вправо, а нечетных установить в 1 биты младшего полубайт - C (СИ)
Формулировка задачи:
Дан массив из беззнаковых чисел. Коды четных элементов массива сдвинуть на 2 разряда влево, а в нечетных элементах установить в 1 биты младшего по-лубайта. Элементы полученного массива представить в 10-ичном и 16-ричном форматах.
Надеюсь, что мне помогут.
Решение задачи: «В массиве коды четных элементов сдвинуть на 2 разряда вправо, а нечетных установить в 1 биты младшего полубайт»
textual
Листинг программы
#include <stdio.h> int main() { unsigned i, a[] = { 10, 12, 21, 123, 12, 123, 017, 22, 33 }, cnt = sizeof(a) / sizeof(*a); for (i = 0; i < cnt; ++i) { a[i] = ((i+1) % 2) ? a[i] | 0xf : a[i] << 2; printf("a[%d] dec=%d hex=0x%x\n", i, a[i], a[i]); } }
Объяснение кода листинга программы
- Подключение стандартной библиотеки для работы с файлами и вводом-выводом (stdio.h).
- Объявление переменной типа int для хранения индексов массива (i).
- Объявление массива a типа unsigned (беззнаковый) с элементами типа int.
- Присваивание массиву a значения {10, 12, 21, 123, 12, 123, 017, 22, 33}.
- Вычисление количества элементов в массиве a (cnt).
- Организация цикла по всем элементам массива a.
- Проверка остатка от деления i+1 на 2 (сдвиг на 2 разряда вправо для четных, установка в 1 биты младшего полубайт для нечетных).
- Присваивание нового значения элементу массива a.
- Вывод на экран значения элемента массива a в десятичной системе счисления, а также его значение в шестнадцатеричной системе счисления.
- Завершение цикла.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д