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

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

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

Нужна простая прога, выполняющая следующее: вводишь 16-чное число - получаешь на выходя 10-чное. На си... Есть такой вариант, но он чё-то не так работает:
#include "stdafx.h"
using namespace std;
 
#include <iostream>
#include <cmath>
#include <string>
 
    int main()
{
    int i,j,k;  
    setlocale(0,""); // Включаем кириллицу
    double num;
    string str="";
    cout << "введите шестнадцатеричное число:" ;
    getline(cin,str);
    char etal[] = "0123456789abcdef";
    num = 0;
    for (i=str.length();i>0;i--) {
        j=0;
        while (putchar(str[i-1])!=etal[j]) {
            j++;
        };
        k = str.length() - i;
        num=j*pow((double)16, k) + num;
    };
    cout << "её десятичное значение:" << num;   
    cin >> i;
    return 0;
}

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

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

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

  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
Похожие ответы