Перевести число из 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); ...
Объяснение кода листинга программы
- В начале программы объявлена переменная
s
типаstring
. - Ввод строки с помощью функции
cin>>s;
. - Объявлена переменная
i
типаint
. - Функция
sscanf(s.c_str(),
%2X,&i);
используется для чтения двух символов из строкиs
и преобразования их в десятичное число. - Вывод числа с помощью функции
printf(
%d,i);
. - Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д