Перевод из 16 в 10 систему счисления - C (СИ)
Формулировка задачи:
Вот рабочий код программы, он работает только до 8 символов. А если больше 8 символов, то перевод уже неверный. Как решить эту проблему. Заранее, спасибо.
#include <stdio.h> #include <string.h> #include <ctype.h> #include <math.h> #include <stdio.h> int HEX_TO_DEC(char st[10]) { int i, s, k, p; s = 0; p = strlen(st) - 1; for (i = 0; st[i] != '\0'; i++) { switch (toupper(st[i])) { case 'A': k = 10; break; case 'B': k = 11; break; case 'C': k = 12; break; case 'D': k = 13; break; case 'E': k = 14; break; case 'F': k = 15; break; case '1': k = 1; break; case '2': k = 2; break; case '3': k = 3; break; case '4': k = 4; break; case '5': k = 5; break; case '6': k = 6; break; case '7': k = 7; break; case '8': k = 8; break; case '9': k = 9; break; case '0': k = 0; break; } s = s + k * pow(16, p); p--; } printf("%d", s) ; return 0; } int main() { char s[10]; char ch; printf ( "Plese, enter string: \n"); scanf("%s", s) ; printf ("\nRezultant: \n"); HEX_TO_DEC(s); scanf (s); }
Решение задачи: «Перевод из 16 в 10 систему счисления»
textual
Листинг программы
c = toupper(st[i]); if (c>='A' || c<='F') k = c - 'A' + 10; else if (c>='0' && c<='9') k = c - '0'; else printf("недопустимая цифра %c", c);
Объяснение кода листинга программы
c
- это переменная, которая получает значение символа из строкиst[i]
.k
- это переменная, которая используется для хранения десятичного значения числа.toupper(st[i])
- это функция, которая преобразует символst[i]
в верхний регистр.if (c>='A' || c<='F')
- это условие, которое проверяет, является ли символc
буквой от 'A' до 'F'.k = c - 'A' + 10;
- это выражение, которое вычисляет десятичное значение числа, добавляя 10 к разности символаc
и 'A'.else if (c>='0' && c<='9')
- это условие, которое проверяет, является ли символc
числом от '0' до '9'.k = c - '0';
- это выражение, которое вычисляет десятичное значение числа, вычитая '0' из символаc
.else printf(
недопустимая цифра %c, c);
- это условие, которое проверяет, является ли символc
недопустимым числом. Если это так, то выводится сообщение об ошибке.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д