Преобразовать число в строке к десятичной системе - C (СИ)

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

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

Дана строка, содержащая число в шестнадцатеричной системе исчисления. Преобразовать число в строке к десятичной системе.
Листинг программы
  1. #include <stdio.h>
  2. int main(int argc, char *argv[])
  3. {
  4. char str[51];
  5. printf("vvedite chislo: ");
  6. gets(str);
  7. unsigned num = 0, i;
  8. for(i=0;str[i]!=0;i++){
  9. num += str[i] - 816;
  10. if(str[i+1] != 0) num *= 16;
  11. }
  12. for(i=0;num>0;i++){
  13. str[i] = num%10 + 816;
  14. num /= 10;
  15. }
  16. str[i] = 0;
  17. for(int j=0;j<i/2;j++){
  18. char ch = str[j];
  19. str[j] = str[i-j-1];
  20. str[i-j-1] = ch;
  21. }
  22. puts(str);
  23. return 0;
  24. }

Решение задачи: «Преобразовать число в строке к десятичной системе»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(void)
  5. {
  6.    char *s = "0x21"; // 33
  7.    char *p;
  8.    
  9.    printf("%ld\n", strtol(s, &p, 0));
  10. }

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

В данном коде:

  1. Объявлены две переменные: s (строка) и p (указатель на символ).
  2. Значение переменной s установлено в 0x21 (строка, содержащая число в шестнадцатеричной системе счисления).
  3. В функцию printf() передаются три аргумента: %ld (формат вывода), s (строка для преобразования), &p (указатель на первый необязательный аргумент функции).
  4. Функция strtol() вызывается с тремя аргументами: s, &p, 0.
  5. Результатом работы функции strtol() является значение переменной p (которое будет указывать на первый необязательный аргумент функции).
  6. Значение переменной p выводится на экран с помощью функции printf(). В результате выполнения данного кода на экран будет выведено число 33 (десятичное представление числа, которое соответствует шестнадцатеричному числу 0x21).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы