Перевести массив десятичных чисел в двоичные - C (СИ)
Формулировка задачи:
Помогите пожалуйста на языке СИ: Дан массив целых чисел, состоящий из N элементов (N=10). Перевести заданные числа в двоичную систему счисления. Вывести на экран монитора заданные десятичные числа и их двоичный эквивалент (диапазон чисел изменяется от нуля до 127). Заранее огромное спасибо
Решение задачи: «Перевести массив десятичных чисел в двоичные»
textual
Листинг программы
#include <stdio.h>
#define N 10
int main()
{
int arr[N]= {5,22,44,3,1,33,93,32,57,120};
int i, j;
const int size = sizeof(int) * 8;
char charr[size];
for(i = 0; i < N; i++)
{
printf("%3d - ",arr[i]);
for ( j= size-1; j >= 0; j--)
{
charr[j] = (arr[i] % 2) + '0';
arr[i] >>= 1;
}
printf("%s\n", charr);
}
return 0;
}
Объяснение кода листинга программы
В этом коде происходит перевод десятичных чисел в двоичные. Вот список действий, которые происходят в коде:
- Включаем стандартную библиотеку для работы с файлами и выводом в консоль.
- Определяем размер массива N, который равен 10.
- Создаём массив arr типа int с десятью элементами и инициализируем его значениями.
- Объявляем две переменные i и j типа int, которые будут использоваться в циклах.
- Объявляем переменную charr типа char, которая будет использоваться для хранения двоичных представлений чисел.
- Вычисляем размер int в битах (размер) и объявляем его константой.
- Инициализируем переменную charr нулями.
- Запускаем цикл for для каждого элемента массива arr.
- Выводим значение элемента массива на экран с помощью функции printf.
- Запускаем цикл for для каждого бита числа, начиная с старшего бита.
- Сохраняем младший бит числа в переменную charr и сдвигаем число вправо на один бит.
- Добавляем символ '0' к младшему биту, преобразуя его в строку.
- Выводим строку charr на экран с помощью функции printf.
- Завершаем цикл for для текущего элемента массива.
- Завершаем основную функцию main, возвращая 0.