Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
mriceMan
0 / 0 / 0
Регистрация: 30.11.2009
Сообщений: 18
#1

Перевод чисел из 5->10 c.c - C++

18.10.2011, 15:04. Просмотров 470. Ответов 6
Метки нет (Все метки)

Всем привет. Помогите пожалуйста разобраться с листингом программы, которая переводит числа из пятеричной системы счисления в десятичную. Программа рабочая, но мне не совсем понятен механизм работы, если можно то прокомментируйте пожалуйста каждую строчку. Особенно интересна 16 строка, почему num[i] - 48. Заранее спасибо )

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <cstring>
 
 
 
int main()
{
        char num[20];
        cout << "Введите число в пятеричной системе счисления: ";
        cin.getline(num, 20);
        long answer = 0;
        int len = strlen(num);
        long pow = 1;
        for (int i = len - 1; i >= 0; i--)
        {
                answer += pow * (num[i] - 48); 
                pow *= 5;
        }
        cout << "(" << num << ")5 = " << answer;
        cin.get();
        return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2011, 15:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перевод чисел из 5->10 c.c (C++):

Перевод чисел из строки в массив чисел - C++
Задача: Ввод: Во входном файле содержится несколько (до 1000) строк, в каждой строке задается одно целое число от 6 до 1000000. Конец...

перевод чисел(с++) - C++
Здравствуйте!!! Наткнулся на интересну задачу, я ее решил, но ни как не пойму почему выходит не правильно!!! Суть задачи такая, вводим...

Перевод чисел - C++
for (int i = ResultBox-&gt;Text-&gt;Length- 1; i &gt;= 0; i--) { dig = System::Convert::ToInt32(ResultBox-&gt;Text); dig = dig - 48; if...

Перевод чисел из 10 сс в 8 сс на С++ - C++
Задание: дается число m в десятичной системе счисления, надо преобразовать в 8-ричную систему счисления и подсчитать количество четных...

Перевод чисел из 10 СС в 2 СС - C++
Помогите пожалуйста написать программу,которая представляла бы введенное число типа unsigned char в двоичном виде с помощью битовых масок.

Перевод чисел из различных сс - C++
Необходимо написать программу для перевода чисел с основанием 2,8,16 в десятичное. Спасибо большое за помощь Вот то, что получилось у...

6
mimicria
return (true);
1958 / 1095 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
18.10.2011, 15:06 #2
Цитата Сообщение от mriceMan Посмотреть сообщение
почему num[i] - 48.
Потому что вы загоняете цифры в массив char, в котором код цифры 0 - 48, 1-49 и т.д.
0
mriceMan
0 / 0 / 0
Регистрация: 30.11.2009
Сообщений: 18
18.10.2011, 15:22  [ТС] #3
А как работают остальные строки?
0
mimicria
return (true);
1958 / 1095 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
18.10.2011, 15:35 #4
Цитата Сообщение от mriceMan Посмотреть сообщение
А как работают остальные строки?
Примерно так: считали число, померяли размер, по всем циферкам пробежались и умножили на pow, сложили с результатом, изменили pow, в конце вывели результат.
0
mriceMan
0 / 0 / 0
Регистрация: 30.11.2009
Сообщений: 18
18.10.2011, 16:33  [ТС] #5
Спасибо это все понятно, но я никак ни пойму почему в 16 строке именно -48 ?
0
mimicria
return (true);
1958 / 1095 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
18.10.2011, 16:38 #6
Цитата Сообщение от mriceMan Посмотреть сообщение
почему в 16 строке именно -48 ?
Еще раз говорю: код нуля - 48. Чтобы из кода получить число вычитаем 48. Почему из кода? Потому что получаем ввод мы в массив char[], который хранит символы. А код символа ноль - 48. goto start
0
mriceMan
0 / 0 / 0
Регистрация: 30.11.2009
Сообщений: 18
18.10.2011, 16:48  [ТС] #7
Спасибо, теперь все понятно
0
18.10.2011, 16:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.10.2011, 16:48
Привет! Вот еще темы с ответами:

Перевод чисел из любой сс в 10-ую - C++
Задача: Программа должна переводить любое число в любой системе счисления (от унарной до десятичной включительно), которую задаст...

Рекурсивный перевод чисел - C++
Здравствуйте, вот есть такое задание как решить до моего ума не доходит Реализовать рекурсивную процедуру представления натурального...

перевод действительных чисел - C++
Написать программу перевода действительных чисел из десятичной системы счисления в двоичную. Считаем что целая часть числа не превосходит...

Перевод чисел в определённую систему - C++
Нужно сделать программу для перевода числа в разные систему то есть вписываешь число и программа должна выдать следующий ответ (мы написали...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.