Преобразовать число в строке к десятичной системе - C (СИ)
Формулировка задачи:
Дана строка, содержащая число в шестнадцатеричной системе исчисления.
Преобразовать число в строке к десятичной системе.
Листинг программы
- #include <stdio.h>
- int main(int argc, char *argv[])
- {
- char str[51];
- printf("vvedite chislo: ");
- gets(str);
- unsigned num = 0, i;
- for(i=0;str[i]!=0;i++){
- num += str[i] - 816;
- if(str[i+1] != 0) num *= 16;
- }
- for(i=0;num>0;i++){
- str[i] = num%10 + 816;
- num /= 10;
- }
- str[i] = 0;
- for(int j=0;j<i/2;j++){
- char ch = str[j];
- str[j] = str[i-j-1];
- str[i-j-1] = ch;
- }
- puts(str);
- return 0;
- }
Решение задачи: «Преобразовать число в строке к десятичной системе»
textual
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- int main(void)
- {
- char *s = "0x21"; // 33
- char *p;
- printf("%ld\n", strtol(s, &p, 0));
- }
Объяснение кода листинга программы
В данном коде:
- Объявлены две переменные: s (строка) и p (указатель на символ).
- Значение переменной s установлено в
0x21
(строка, содержащая число в шестнадцатеричной системе счисления). - В функцию printf() передаются три аргумента:
%ld
(формат вывода), s (строка для преобразования), &p (указатель на первый необязательный аргумент функции). - Функция strtol() вызывается с тремя аргументами: s, &p, 0.
- Результатом работы функции strtol() является значение переменной p (которое будет указывать на первый необязательный аргумент функции).
- Значение переменной p выводится на экран с помощью функции printf().
В результате выполнения данного кода на экран будет выведено число 33 (десятичное представление числа, которое соответствует шестнадцатеричному числу
0x21
).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д