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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.93
jock
2 / 2 / 0
Регистрация: 29.10.2011
Сообщений: 38
#1

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

11.02.2012, 23:36. Просмотров 1947. Ответов 20
Метки нет (Все метки)

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

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
#include <iostream>   
#include <math.h>
using namespace std;
 
int main()
{
    int temp, size=0,nVal;
    int S=0;
    cout <<"Enter number\n";
    cin >> nVal;
    temp=nVal;
    while(temp!=0) 
    {
        temp/=10;
        size++;
    }
    temp=nVal; 
    int* ar = new int[size];
    for(int i=0; i<size; i++)
    {
        ar[i]=temp%10;
        temp/=10;
    }
    for (int i=0; i<size; i++)
    {
        S+=ar[i]*pow(8.0,i);
    }
    delete ar;
    cout <<S;
}
Или напишите свой код. Заранее спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2012, 23:36
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Перевод из восьмиричной в десятиричную (C++):

Перевод из восьмеричной системы в десятиричную - C++
Всё работает и переводит прекрасно - но только до числа 1000, дальше начинает врать. Помогите, пожалуйста, ликвидировать ошибку или хотя бы...

Перевод из восьмеричной системы исчисления в десятиричную - C++
Всем привет, пишу курчач:) и одна из проблем, с которой я столкнулся- перевод из восьмеричной системы исчисления в десятиричную...я...

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

Перевод из двоичной в десятиричную - C#
Помогите с кодом. Только чтобы не использовались методы типа Convert и так далее. Всё на уровне паскаля. Допустим делением по модулю на...

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

Перевод из шестнадцатиричной системы в десятиричную - Visual Basic .NET
Насколько я понимаю то это выражение Const dsa = &amp;HA1 как раз и является &quot;вбшной шестнадцатиричной&quot; или это просто шестнадцатиричное...

20
Сtrl
141 / 131 / 3
Регистрация: 19.07.2011
Сообщений: 184
12.02.2012, 02:14 #16
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
в 8-ке число будет больше чем в 10-ке
Нет. Число не меняется от того, в какой системе счисления его записывать. Попробуйте осознать это и не называть мои замечания глупыми без весомых на то причин.
1
-=ЮрА=-
Заблокирован
Автор FAQ
12.02.2012, 02:21 #17
Цитата Сообщение от Сtrl Посмотреть сообщение
Нет. Число не меняется от того, в какой системе счисления его записывать. Попробуйте осознать это и не называть мои замечания глупыми без весомых на то причин.
- да понятное дело, что 11 яблок это 11 яблок, только в бинарке это 1011 в oct 13 а в hex B.
Когда делаем ввод то только запись и можем ввести и получаем такую же запись в другой системе счисления, весь мозг мне выел
1
Сtrl
141 / 131 / 3
Регистрация: 19.07.2011
Сообщений: 184
12.02.2012, 02:23 #18
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Хочу отметить, что INT_MAX даже не можем в oct вводить ибо надо вводить с разрядами меньше 8-ки, а ещё ведёшь речь о переполнении...
Хочу отметить, что коль мы вводим восьмеричное число (хотя согласно вашему коду, мы вводим десятичное) - представление INT_MAX это 17777777777. Что-то я не вижу ни одного разряда больше восьмерки.
Когда делаем ввод то только запись и можем ввести и получаем такую же запись в другой системе счисления
Поток cin по умолчанию принимает как раз десятичную запись числа в виде строки, а затем преобразует во внутреннее представление (int). Это можно изменить. Правильное решение находится в сообщении #2 данной темы.
1
-=ЮрА=-
12.02.2012, 02:30
  #19

Не по теме:

Сtrl, прочти название топика

Цитата Сообщение от jock Посмотреть сообщение
перевод из восьмиричной в десятиричную
теперь посмотри на результат работы программы, потом ещё раз на тему топика, кстати можно было сделать преобразование из бинарки и вводить скажем 1011 т.е двоичную запись числа 11, и что дальше ты запрещаешь это делать?Многие бинарку строкой записывают а не работают с битами и???
PS:Хвати спорить не понятно о чём, надоело!

1
vladislavchick
35 / 35 / 1
Регистрация: 22.05.2010
Сообщений: 107
12.02.2012, 12:01 #20
По-моему, у renald самое нормальное решение.
1
jock
2 / 2 / 0
Регистрация: 29.10.2011
Сообщений: 38
12.02.2012, 15:26  [ТС] #21
Цитата Сообщение от renald Посмотреть сообщение
А чем мой код не подходит?
Спасибо за старания, но нужно не таким способом как у тебя.

Добавлено через 3 минуты
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- тогда как то так
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
#include <iostream>
#include <cmath>
using namespace std;
 
int oct2dec(int oct_val)
{
    
    int ipower = 0;
    int buffer = oct_val;
    while(0 < (buffer /= 8))
        ipower = ipower + 1;
    int dec_val= (oct_val%10);
    for(int i = 1; i <= ipower; i++)
    {
        oct_val /= 10;
        dec_val += (oct_val%10)*pow(8,i);
    }
    return dec_val;
}
 
int main()
{
    
    int val;
    while(true)
    {
        cout<<"Enter oct value : "; cin>>val;
        cout<<"Decimal value   : "<<oct2dec(val)<<endl;
    }
    return 0;
}
Отработка в консоли
Enter oct value : 72
Decimal value : 58
Enter oct value : 200
Decimal value : 128
Enter oct value :

Добавлено через 1 минуту

Не по теме:

PS:jock, да твой код норм, я сначала не въехал, как то сложно сразу перестроить мозги на 8-ку

Большое спасибо
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2012, 15:26
Привет! Вот еще темы с ответами:

Перевод из восьмиричной в десятичную - Delphi
Всем привет ! Долго долго искал на форуме, но так и не нашел, подскажите пожалуйста можно ли напрямую реализовать перевод из 8-чной в...

Перевод чисел из одной системы в десятиричную - C#
Сначала вводим основание системы, скажем 11. Затем вводим число 10. А ответ, при переводе выдает 11. Как задать что это именно число 10,...

Перевод из двоичной в десятиричную систему счисления - C#
Подскажите в чем ошибка? using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using...

Макрос перевод из восьмиричной в десятичную систему - MS Excel
Подскажите пожалуйста, как написать код перевода из восьмеричной в десятичную. Я что то никак не пойму как записать это программно...


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

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

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