Функция для перевода целого числа в 16-ую систему счисления - C (СИ)
Формулировка задачи:
Добрый день! Кто-то встречал или имеет функцию для перевода целого числа в 16-ую систему счисления?
Решение задачи: «Функция для перевода целого числа в 16-ую систему счисления»
textual
Листинг программы
void function(int a) {
int mas[6];
int counter = 0;
while(a > 0) {
mas[counter] = a%16;
a/=16;
counter++;
}
for(int i=counter-1; i>=0; i--) {
if(mas[i] == 10) printf("A");
else if(mas[i] == 11) printf("B");
else if(mas[i] == 12) printf("C");
else if(mas[i] == 13) printf("D");
else if(mas[i] == 14) printf("E");
else if(mas[i] == 15) printf("F");
else printf("%d", mas[i]);
}
printf("\n");
}
Объяснение кода листинга программы
- Создается массив целых чисел mas[6]
- Инициализируется переменная counter = 0
- Запускается цикл while, который выполняется до тех пор, пока a больше 0
- В каждой итерации цикла значение a делится на 16 и записывается в массив mas[counter] остаток от деления
- Переменная a обновляется, путем деления на 16
- Переменная counter увеличивается на 1
- После окончания цикла while, запускается цикл for, который выполняется от counter-1 до 0, включительно
- В каждой итерации цикла проверяется значение mas[i] и выводится соответствующая буква
- Значение mas[i] равно 10 - выводится
A - Значение mas[i] равно 11 - выводится
B - Значение mas[i] равно 12 - выводится
C - Значение mas[i] равно 13 - выводится
D - Значение mas[i] равно 14 - выводится
E - Значение mas[i] равно 15 - выводится
F - Значение mas[i] не равно 10, 11, 12, 13, 14 или 15 - выводится значение mas[i]
- Цикл for завершается
- Выводится символ новой строки
\n - Функция заканчивается