Перевести число из 16-чной системы в 10-чную - C (СИ)

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

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

Нужна простая прога, выполняющая следующее: вводишь 16-чное число - получаешь на выходя 10-чное. На си... Есть такой вариант, но он чё-то не так работает:
Листинг программы
  1. #include "stdafx.h"
  2. using namespace std;
  3. #include <iostream>
  4. #include <cmath>
  5. #include <string>
  6. int main()
  7. {
  8. int i,j,k;
  9. setlocale(0,""); // Включаем кириллицу
  10. double num;
  11. string str="";
  12. cout << "введите шестнадцатеричное число:" ;
  13. getline(cin,str);
  14. char etal[] = "0123456789abcdef";
  15. num = 0;
  16. for (i=str.length();i>0;i--) {
  17. j=0;
  18. while (putchar(str[i-1])!=etal[j]) {
  19. j++;
  20. };
  21. k = str.length() - i;
  22. num=j*pow((double)16, k) + num;
  23. };
  24. cout << "её десятичное значение:" << num;
  25. cin >> i;
  26. return 0;
  27. }

Решение задачи: «Перевести число из 16-чной системы в 10-чную»

textual
Листинг программы
  1. string s;
  2. cin>>s;
  3. int i;
  4. sscanf(s.c_str(),"%2X",&i);
  5. printf("%d",i);
  6. ...

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

  1. В начале программы объявлена переменная s типа string.
  2. Ввод строки с помощью функции cin>>s;.
  3. Объявлена переменная i типа int.
  4. Функция sscanf(s.c_str(),%2X,&i); используется для чтения двух символов из строки s и преобразования их в десятичное число.
  5. Вывод числа с помощью функции printf(%d,i);.
  6. Программа завершается.

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


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

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

12   голосов , оценка 4.083 из 5

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

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

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