В массиве коды четных элементов сдвинуть на 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]);
    } 
}

Объяснение кода листинга программы

  1. Подключение стандартной библиотеки для работы с файлами и вводом-выводом (stdio.h).
  2. Объявление переменной типа int для хранения индексов массива (i).
  3. Объявление массива a типа unsigned (беззнаковый) с элементами типа int.
  4. Присваивание массиву a значения {10, 12, 21, 123, 12, 123, 017, 22, 33}.
  5. Вычисление количества элементов в массиве a (cnt).
  6. Организация цикла по всем элементам массива a.
  7. Проверка остатка от деления i+1 на 2 (сдвиг на 2 разряда вправо для четных, установка в 1 биты младшего полубайт для нечетных).
  8. Присваивание нового значения элементу массива a.
  9. Вывод на экран значения элемента массива a в десятичной системе счисления, а также его значение в шестнадцатеричной системе счисления.
  10. Завершение цикла.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4 из 5
Похожие ответы