БлогNot. Перевод числа из десятичной системы счисления на C++...

Помощь дата->рейтинг Поиск Почта RSS канал Статистика nickolay.info Домой

Перевод числа из десятичной системы счисления на C++...

Вот, как всегда попросили помочь. На C++ решалась традиционная для обучения задача перевода чисел из десятичной системы счисления в систему с любым основанием от 2 до 9.

Решить нужно было без строк или указателей, которые ещё не "проходились". Что ж, зато "проходились" массивы.

Так что решить эту "суперзадачу", учитывая красоту и выразительность языка Си, можно буквально в 2 строки и 1 минуту (ведь само решение - содержимое цикла do ... while, остальное - интерфейс):

/*Перевод числа N из десятичной системы счисления в
 систему с основанием R от 2 до 9*/
#include <iostream.h>
#include <math.h>

void main () {
 int l=0,s[80],n,r;
 cout<<"N>0: ";
 cin>>n;
 cout<<"R in [2,9]:";
 cin>>r;
 do {
  s[l++]=n%r;
  n/=r;
 } while (n!=0);
 for (int i=l-1; i>-1; i--) cout << s[i];
 cout << endl;
}

Здесь сначала вводится положительное целое число N, затем - основание системы счисления R, в которую нужно перевести число.

С чем связано ограничение "от 2 до 9"? Просто при больших основаниях понадобятся строки, наша-то основная система десятичная и "цифр" A, B, C, ... в ней нет.

Моя реализация "в обе стороны" на Паскале есть вот тут, там же ссылки на другие реализации.


теги: числа c++ программирование

Здесь можно оставить коментарий, обязательны к заполнению только красные поля. Не пишите лишнего, и всё будет хорошо :)

Ваше имя:
Пароль (если желаете зарегистрировать имя):
Любимый URL (если указываете, то вставьте полностью):
Текст сообщения (до 1024 символов):
 
Введите 2-й код из этих чисел:
71260, 82827, 36148, 47594
 

19.11.2011, 17:54; рейтинг: 13407

  свежие записипоиск по блогукомментироватьстатистика

Наверх Яндекс.Метрика
© PerS
вход