Форум программистов, компьютерный форум CyberForum.ru

Перевод из восьмеричной в десятичную СС - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
SanchezPluz
49 / 49 / 1
Регистрация: 31.10.2012
Сообщений: 469
10.01.2014, 16:20     Перевод из восьмеричной в десятичную СС #1
Добрый день.

Каким способом можно организовать перевод из восьмеричной в десятичную систему счисления?
Перевод в двоичную из десятичной реализовал, теперь нужно это: пользователь вводит число в восьмеричной системе, а программа выполняет свою задачу.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2014, 16:20     Перевод из восьмеричной в десятичную СС
Посмотрите здесь:

Проблемы с программой перевода из восьмеричной системы счисления в десятичную C++
C++ Перевод в из двоичной в десятичную систему
C++ Написать рекурсивный алгоритм перевода из двоичной системы счисления в десятичную ( из восьмеричной и шестнадцатеричной в десятичную)
C++ Перевод из восьмеричной системы исчисления в десятиричную
C++ Перевод из восьмеричной системы в шестнадцатеричную с++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Foat
6 / 6 / 1
Регистрация: 21.05.2013
Сообщений: 29
10.01.2014, 16:38     Перевод из восьмеричной в десятичную СС #2
"Перевести натуральное число из 8-ричной в 10-чную систему счисления"

может это поможет
SanchezPluz
49 / 49 / 1
Регистрация: 31.10.2012
Сообщений: 469
10.01.2014, 17:29  [ТС]     Перевод из восьмеричной в десятичную СС #3
Foat, опа-па, спасибо.
Оказывается, я забыл проставить амперсанд при вводе.

Добавлено через 31 минуту
Однако вот какая ситуация. Теперь не работает перевод в двоичную систему. Сделал что-то не так. :с
Insane__
43 / 42 / 4
Регистрация: 10.09.2013
Сообщений: 292
10.01.2014, 17:48     Перевод из восьмеричной в десятичную СС #4
Вот программа для перевода чисел в различные системы счисления. В конструктор передается число и исходная система счисления, потом нужно вызвать метод convertTo(to_system) который вернет число в новой системе счисления.

converter.h
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include <vector>
#include <string>
 
using namespace std;
 
 
class Converter{
private:
    vector<int> a;
    int iriginal;
public:
 
    Converter(string str, int original){
        iriginal = original;
        for ( int i=0; i < str.length(); i++ ){
            a.push_back(charToInt(str[i]));
        }
    }
    Converter(){
 
    }
 
    int charToInt(char c){
        if ( c >= '0' && c <= '9' && (c - '0') < iriginal ){
            return c - '0';
        }else{
            if ( c >= 'A' && c <= 'Z' && (c - 'A') < iriginal ){
                return c - 'A' + 10;
            }else {
                return -1;
            }
        }
    }
    char intToChar(int c){
        if ( c >= 0 && c <= 9 ){
            return c + '0';
        }else{
            return c + 'A' - 10;
        }
    }
    int nextNumber(int final){
        int temp = 0;
        for ( int i = 0; i<a.size(); i++){
            temp = temp*iriginal + a[i];
            a[i] = temp / final;
            temp = temp % final;
        }
        return temp;
    }
 
    bool zero(){
        for ( int i=0; i<a.size(); i++ ){
            if ( a[i] != 0 ){
                return false;
            }
        }
        return true;
    }
    string convertTo(int final){
        vector<int> b;
        int size = 0;
        do {
            b.push_back(nextNumber(final));
            size++;
        }while( !zero() );
 
        string sTemp="";
        for (int i=b.size()-1; i>=0; i--){
            sTemp += intToChar(b[i]);
        }
    return sTemp;
    }
};
main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
#include <iostream>
#include <time.h>
#include <converter.h>
 
int main()
{
    Converter conv("234",10);
    cout << conv.convertTo(2);
 
    return 0;
}
SanchezPluz
49 / 49 / 1
Регистрация: 31.10.2012
Сообщений: 469
10.01.2014, 18:08  [ТС]     Перевод из восьмеричной в десятичную СС #5
Insane__, слишком сложно. Знаю, что можно проще, но реализовать не получается.
Я должен ввести число в восьмеричной системе счисления, а программ должна отобразить только двоичную.
Алгоритм подобный уже был, но он не работает конкретно с восьмеричной системой.
Yandex
Объявления
10.01.2014, 18:08     Перевод из восьмеричной в десятичную СС
Ответ Создать тему
Опции темы

Текущее время: 13:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru