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

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

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

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

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

textual
Листинг программы
#include <stdlib.h>
#include <stdio.h>
#include <locale.h>
#include <time.h>
 
#define N 16
 
int main()
{
    setlocale(LC_ALL,"rus");
    srand(time(NULL));
    int bin[N],i,k;
    int hex=0;
    for(i=0,k=15;i<N;i++,k--)
    {
        bin[i]=rand()%2;         //заполняем рандомом
        printf("%d",bin[i]);
 
        hex+=bin[i]*pow(2,k);
 
    }
 
 
    printf("\n%x",hex);
 
 
 
    return 0;
 
}

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

В этом коде выполняется перевод чисел из 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
Похожие ответы