Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.73/40: Рейтинг темы: голосов - 40, средняя оценка - 4.73
1 / 1 / 0
Регистрация: 26.10.2017
Сообщений: 17
1

Функция: перевод заданного в восьмеричной системе числа a в десятичную систему

02.11.2017, 18:18. Показов 7637. Ответов 8
Метки нет (Все метки)

Перевести заданное в восьмеричной системе число a в десятичную систему, используя функцию перевода.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.11.2017, 18:18
Ответы с готовыми решениями:

Перевод числа в p-ичной системе счисления в десятичную систему
Задание: Дана символьная строка, представляющая собой запись натурального числа в p-ичной системе...

Перевод из восьмеричной в десятичную СС
Добрый день. Каким способом можно организовать перевод из восьмеричной в десятичную систему...

Рекурсивный перевод числа в десятичную систему счисления
Добрый вечер, нужна небольшая помощь в решении задачи. Смысл в том, что мы имеем два числа,...

Перевод числа из восьмиричной в десятичную систему счисления
Здравствуйте! Вопрос такой. Мне нужно ввести с клавиатуры число и перевести его как бы (на самом...

8
20 / 19 / 19
Регистрация: 01.11.2017
Сообщений: 48
02.11.2017, 18:43 2
Лучший ответ Сообщение было отмечено Apologyse как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<string>
#include<cstring>
#include<algorithm>
#include<cmath>
 
using namespace std;
 
int conv(string s) {
    int res = 0;
    for (int i = 0; i < (int)s.size(); ++i) {
        res *= 8;
        res += (s[i] - '0');
    }
    return res;
}
 
int main() {
    string a;
    cin >> a;
    cout << conv(a);
}
2
150 / 133 / 45
Регистрация: 15.02.2010
Сообщений: 744
02.11.2017, 19:02 3
Отличное решение, evstarylan!
А слабо использовать еще больше библиотек?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<string>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<list>
#include<map>
#include<queue>
#include<vector>
#include<iterator>
#include<fstream>
#include<iomanip>


На самом же деле, для Вашего решения достаточно двух библиотек: <iostream> и <string>
1
20 / 19 / 19
Регистрация: 01.11.2017
Сообщений: 48
02.11.2017, 19:07 4
LVV, хаха!
Шаблон остался. Вы правы, не следует загромождать код
0
1 / 1 / 0
Регистрация: 26.10.2017
Сообщений: 17
03.11.2017, 11:13  [ТС] 5
0
150 / 133 / 45
Регистрация: 15.02.2010
Сообщений: 744
03.11.2017, 11:17 6
Цитата Сообщение от Apologyse Посмотреть сообщение
в 22-ой строке ошибку выдаёт.
Вероятно, Вам еще не известны комбинации клавишш Ctrl+C и Ctrl+V, и Вы печатали код вручную... тогда в операторе cin замените кириллический символ "с" на латинский.
0
1 / 1 / 0
Регистрация: 26.10.2017
Сообщений: 17
03.11.2017, 11:26  [ТС] 7
Цитата Сообщение от evstarylan Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<string>
#include<cstring>
#include<algorithm>
#include<cmath>
 
using namespace std;
 
int conv(string s) {
    int res = 0;
    for (int i = 0; i < (int)s.size(); ++i) {
        res *= 8;
        res += (s[i] - '0');
    }
    return res;
}
 
int main() {
    string a;
    cin >> a;
    cout << conv(a);
}
а ещё можно объяснить что делает 13 и 15 строка?
0
150 / 133 / 45
Регистрация: 15.02.2010
Сообщений: 744
03.11.2017, 11:32 8
Извините, но чтобы понять эти строчки необходимо уметь самостоятельно (без помощи технических и программных средств) переводить числа из восьмеричной системы счисления в десятеричную.
Например, понимать как получается:
10 -> 8
11 -> 9
52 -> 42
и т.п.
Вы это умеете делать?
0
20 / 19 / 19
Регистрация: 01.11.2017
Сообщений: 48
03.11.2017, 11:39 9
Цитата Сообщение от Apologyse Посмотреть сообщение
а ещё можно объяснить что делает 13 и 15 строка?
На каждой иттерации вы домножаете число, где собираете ответ (res), на основание системы (в данном случае 8) и прибавляете текущую цифру.
Например:
123 = 1 * (8 * 8) + 2 * 8 + 3 = 8 * (1 * 8 + 2) + 3
Берем 0, домножаем на 8, прибавляем 1. res = 1
Домножаем на 8, прибавляем 2. res = 10
Домножаем это все на 8, прибаляем 3. res = 83
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.11.2017, 11:39

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Перевод числа из двоичной в десятичную систему счисления на С++
Доброго всем дня! Мне необходимо перевести число из двоичной в десятичную с.с. с помощью рекурсии...

Перевод десятичного числа в двоично-десятичную систему счисления
Разработать программу и подпрограмму (подпрограммы), выполняющие действия согласно варианту задания...

Составить программу перевода заданного числа в десятичную систему счисления
Дано целое число в двоичной системе счисления, т.е. последовательность цифр 0 и 1. Составить...

Перевод чисел из восьмеричной системы счисления в десятичную
Есть код программы, которая переводит числа из двоичной системы счисления в десятичную, можно ли...


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

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

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