Re: Как закодировать?
- From
- Andrew Ezhguroff ()
- To
- Mike Makhov
- Date
- 2002-10-08T13:46:59Z
- Area
- RU.ALGORITHMS
From: "Andrew Ezhguroff" <eandr@com2com.ru>
Привет! "Mike Makhov" <Mike.Makhov@f909.n5020.z2.fidonet.org> сообщил(а):
AE>> А вот в СТАНДАРТНОМ (борландовские извращения меня не интересуют)
AE>> Паскале битовых операций и сдвигов для целых нет.
MM> Конечно нет ;-(
MM> procedure PrintBin(Val: integer);
MM> var
MM> Tmp: Char;
MM> begin
MM> Tmp := Char(Val and 1) + '0';
MM> Val := (Val shr 1) and MaxInt;
MM> if LongBool(Val) then PrintBin(Val);
MM> Write(Tmp);
MM> end;
Почти точный перевод (у меня скоре if Val<>0 then PrintBin(Val);) на Borland
Pascal.
На Паскале Вирта (которому меня обучали много лет назад) будет что-то вроде:
procedure PrintBin(Val: integer);
var Tmp: char;
begin
Tmp:=chr(Val mod 2+ord('0'));
Val:=Val div 2;
if Val<0 then Val:=Val+MaxInt+1;
if Val<>0 then PrintBin(Val);
write(Tmp)
end;
С уважением, Андрей.
--
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
--- ifmail v.2.15dev5
* Origin: Talk.Mail.Ru (2:5020/400)