Перевод из 16-ричной в двоичную в массиве - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Уважаемые, поясните нерадивому первокурснику, как нужно делать данное задание : Дан массив целых чисел (N=16). Элементы массива представляют собой последовательность нулей и единиц. Преобразовать этот массив в эквивалентное шестнадцатеричное число. Если со строковым массивом все понятно, преобразует двоичное число как надо, то вот с массивом ЦЕЛЫХ чисел бяда. Буду очень признателен за вставку с кодом.

Решение задачи: «Перевод из 16-ричной в двоичную в массиве»

textual
Листинг программы
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <locale.h>
  4. #include <time.h>
  5.  
  6. #define N 16
  7.  
  8. int main()
  9. {
  10.     setlocale(LC_ALL,"rus");
  11.     srand(time(NULL));
  12.     int bin[N],i,k;
  13.     int hex=0;
  14.     for(i=0,k=15;i<N;i++,k--)
  15.     {
  16.         bin[i]=rand()%2;         //заполняем рандомом
  17.         printf("%d",bin[i]);
  18.  
  19.         hex+=bin[i]*pow(2,k);
  20.  
  21.     }
  22.  
  23.  
  24.     printf("\n%x",hex);
  25.  
  26.  
  27.  
  28.     return 0;
  29.  
  30. }

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

В этом коде выполняется перевод чисел из 16-ричной системы счисления в двоичную систему счисления.

  1. #include <stdlib.h>, #include <stdio.h>, #include <locale.h>, #include <time.h> - подключают необходимые для работы функции и библиотеки
  2. #define N 16 - определяет размер массива
  3. setlocale(LC_ALL,rus); - устанавливает русскую локаль для вывода информации
  4. srand(time(NULL)); - инициализирует генератор случайных чисел текущим временем
  5. int bin[N],i,k; - объявляет массив bin для хранения двоичных чисел, а также переменные i и k для работы с циклами
  6. int hex=0; - инициализирует переменную hex для хранения суммы чисел в двоичной системе счисления
  7. for(i=0,k=15;i<N;i++,k--) - организует цикл по массиву bin от 0 до N-1, при этом значение k уменьшается на единицу на каждой итерации цикла
  8. bin[i]=rand()%2; - заполняет элементы массива bin случайными двоичными числами от 0 до 1
  9. printf(%d,bin[i]); - выводит на экран значение каждого двоичного числа в 10-чной системе счисления
  10. hex+=bin[i]*pow(2,k); - суммирует текущее двоичное число с hex, умноженное на 2 в степени k
  11. printf(\n%x,hex); - выводит на экран результат перевода в 16-ричную систему счисления
  12. return 0; - завершает работу программы

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


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

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

9   голосов , оценка 3.889 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы