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

Программа перевода числа из десятичной системы в восмеричную - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Необходимо провести трассировку программ http://www.cyberforum.ru/cpp-beginners/thread797818.html
Проведите трассировку определения количество чётных чисел в массиве. Выполните трассировку программ из своего варианта с использованием отладчика.
C++ DEV C++ новый проект win, непонятные операторы В DEV C++ создаю новый проект - windows application, он сразу кучу операторов рисует до селе неизвестных, объясните пож, хотя бы ключевые, самые важные из них. Может ссылку подскажите на ресурс... http://www.cyberforum.ru/cpp-beginners/thread797796.html
Распознавалка чертежей C++
На вход подаётся теоретический чертёж, например, корпуса корабля/судна трёх emf файлах: вид с борта, план и в одном файле два полувида с носа и с кормы, выбирается борт левый/правй для вида с борта и...
Функции и Матрицы C++
Впервые работаю с функциями, вроде написать всё как надо, но code blocks'у не нравится. #include <stdio.h> //printf scanf #include <conio.h> #include <stdlib.h> #include <string.h> void...
C++ Количество строк http://www.cyberforum.ru/cpp-beginners/thread797778.html
Подскажите пожалуйста, как можно подсчитать количество строк в файле?
C++ Возврат массива Не спрашивайте зачем я это делаю, если можно просто использовать strcpy. char tostrcpy(char *to, char *from); int main(int i) { setlocale(LC_ALL, "Russian"); char str01, str02; int... подробнее

Показать сообщение отдельно
Learx
1035 / 842 / 86
Регистрация: 31.03.2010
Сообщений: 2,465
01.03.2013, 11:42
ИМХО в данном случае следует использовать схему Горнера для представления чисел. Любое число в системе с основой а можно однозначно представить в виде:
х1*a^0+x2*a^1+x3*a^2 .... где х1,х2,х3 это цифры нашей СС(для 10-ой от 0 до 9, для 8-ой от 0 до 7 и т.д.).

следовательно, для перевода из 10-ой в 8-ю следует использовать следующий алгоритм (пусть будет число 66)
1)66%8=2; 65/8=8;
2)8%8=0; 8/8=1
3) 1%8=1; 1/8=0 - получили 0 - конец цикла
восьмеричное число составляют остатки в обратном порядке: 102=1*8^2+0*8^1+2*8^0 = 66 - обратный перевод

далее, компилятор не умеет работать с числами в другой СС. Его надо этому научить - следовательнос создать свой класс. тут есть два способа:
1) более простой - числа перед выполнением операции переводятся в 10-ю, операция выполняется в 10-ой и результат обратно переводится в нужную СС.
2) более сложный - реализовать арифметические операции для каждой СС используя правила операций для СС.
то есть как-то прописать что в 8-ой складывая 4+7 мы получим 13. По-моему тут поможет использовать перечисление(enum)
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru