Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.10.2011, 13:15   #1
narco3
Пользователь
 
Аватар для narco3
 
Регистрация: 02.10.2011
Сообщений: 32
Печаль системы счисления в паскале


вводится 20-ти разрядное число с клавиатуры.необходимо перевести его в 2-ю,8-ю,16-ю. без масивов но со строками можно.пробовал не получилось...
Если кто захочет подскажите как это сделать(процедуры еще не изучали)
narco3 вне форума Ответить с цитированием
Старый 22.10.2011, 13:34   #2
Sna1L
Форумчанин
 
Аватар для Sna1L
 
Регистрация: 15.03.2011
Сообщений: 272
По умолчанию

оффтоп.а просто переводить в другую систему счисления Вы умеете?

Возьмем старый добрый способ перевода десятичного в двоичное:
пока число не станет равно единице делим его на 2 и записываем остаток(либо 0, либо 1). выписываем их в ряд и добавляем единицу. Переворачиваем число: вот и искомое.

что-то вроде этого:
Код:
while(n>1) do
  begin
  if(n mod 2=1) then otv:='1'+otv//otv -строка
                     else otv:='0'+otv;
  n:=n div 2;
  end;
otv:='1'+otv;

Последний раз редактировалось Sna1L; 22.10.2011 в 13:36.
Sna1L вне форума Ответить с цитированием
Старый 22.10.2011, 15:01   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Sna1L, по сути Вы абсолютно правы.

Но надо только учесть, что в Паскаль нет типов данных, позволяющих оперировать 20-значными числами. Поэтому деление на 2 прийдётся реализовать "вручную" - (алгоритм деления в столбик - 2й/3й класс начальной школы).

Но есть один бонус в данной задаче.
После перевода числа в двоичную систему, перевод в 8-ю и 16-ю будет прост, как топор:
если из двоичного числа брать справа по четыре разряда и переводить их в числа от 0 до F - получим число в 16-ной СС,
если из двоичного числа брать справа по три разряда и переводить в числа от 0 до 7 - получится запись числа в 8-ной системе счисления.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.10.2011, 15:39   #4
Sna1L
Форумчанин
 
Аватар для Sna1L
 
Регистрация: 15.03.2011
Сообщений: 272
По умолчанию

Serge_Bliznykov, Вы правы, не подумал (я решил, что 20-ти разрядное - это состоящее из 20бит )
но в принципе это тонкости и особых проблем вызывать не должны, так что ТС стоило подумать над решением самому.ИМХО
Sna1L вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Системы счисления counter Свободное общение 9 12.10.2011 18:15
системы счисления Вера_09 Помощь студентам 3 28.09.2011 11:57
Системы счисления alexmikt Фриланс 2 27.02.2010 02:52
Системы счисления vdv08 Паскаль, Turbo Pascal, PascalABC.NET 1 08.05.2008 17:32