Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 17.01.2008, 19:28   #1
Xeon332
Скоро сессия...
Форумчанин
 
Регистрация: 03.01.2008
Сообщений: 224
Репутация: 10
По умолчанию Pascal. перевод из десятичной системы счисления в двоичную

Возник вопрос при написании программы, которая переводила бы десятичную СС в двоичную. Подскажите каким оператором лучше работать? При каждом шаге число нужно делить на 2, и после того, как само число будет меньше двух, то использовать if? Если можно распишите пожалуста. Спасиб
Xeon332 вне форума   Ответить с цитированием
Старый 18.01.2008, 19:55   #2
rpy3uH
добрый няша
СуперМодератор
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Адрес: Солнечное Тбилиси
Сообщений: 4,806
Репутация: 2006
По умолчанию

Вот этот код должен работать на паскале
Код:
function ItoS(val:integer):string;
var
  _r:string;
begin
  Str(val,_r);
  ItoS:=_r;
end;

function ConvertToCS(val:integer;CS:integer):string;
var
  _r,_r1:string;
  _m,i:integer;
begin
  _r:='';
  if CS>16 then exit;
  repeat
   _m:=val mod CS;
   val:=val div CS;
   if _m<10 then
    _r:=_r+ItoS(_m)
            else
    _r:=_r+chr(ord('A')+_m-10);
  until val=0;

  _r1:='';
  for i:=length(_r) downto 1 do
   _r1:=_r1+_r[i];
  ConvertToCS:=_r1;
end;
ConvertToCS функция преобразовывает число в ЛЮБУЮ систему счисления 2-16, хоть в четырнадцатеричную! система счисления указывается вторым параметром.
например
Код:
 writeln(ConvertToCS(78965,14));
 writeln(ConvertToCS(454,8));
rpy3uH вне форума   Ответить с цитированием
Старый 19.01.2008, 09:15   #3
Xeon332
Скоро сессия...
Форумчанин
 
Регистрация: 03.01.2008
Сообщений: 224
Репутация: 10
По умолчанию

Спасибо большое. Буду разбираться.
Xeon332 вне форума   Ответить с цитированием
Старый 24.01.2011, 14:54   #4
k0tone
Форумчанин
 
Аватар для k0tone
 
Регистрация: 09.11.2010
Адрес: Киев
Сообщений: 99
Репутация: 10
По умолчанию

Можно ещё вот-так:
Код:
program test;
uses crt;
var b:array [1..255] of integer;
    a,i,n:integer;
begin
clrscr;
write('Vvedite a=');
readln(a);
i:=0;
while a>=1 do
  begin
    i:=i+1;
    b[i]:=a mod 2;
    a:=a div 2;
  end;
n:=i;
for i:=n downto 1 do
write(b[i]:3);
readln;
end.
__________________
Если я вам помог - нажмите на весы пот аватаркой!
k0tone вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод целых чисел из одной системы счисления в другую =LeonZone= Помощь студентам 19 12.12.2010 17:18
Программа перевода из одной системы счисления в другую - Turbo Pascal 7.0. Prescott Помощь студентам 5 19.03.2010 20:26
Системы счисления vdv08 Паскаль 1 08.05.2008 17:32
Перевод из одной системы счисления в другую Sky_VSUH Помощь студентам 1 28.02.2008 21:18


15:02.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.