Re: Как закодировать?

From
Viktor Karev (2:5080/1003)
To
Oleg I. Khovayko
Date
2002-10-03T12:13:13Z
Area
RU.ALGORITHMS
From: Viktor Karev <termar@narod.ru>
Reply-To: termar@narod.ru

Приветствия!

"Oleg I. Khovayko" wrote:

> Интересно, полетит ли такой паровоз:
> 
> procedure printbin(x:integer)
> begin
>   repeat
>     if x < 0 then write('1') else write('0');
>     x := x * 2
>   until x <> 0;
>   writeln;
> end;
> 
> По идее, вышеприведенная процедура должна integer печатать в двоичном
> формате...

Если x=0, то имеем зацикливание.
Если x<>0, то получим только одну цифру.

Виктор.

> 
> PS:
> Паскаля у меня нету, так что проверить сам не могу...
> 
> > и наоборот: двоичное перевести в десятичную
> > форму.
> 
> type str=array[0..31] of char;
> 
> a эта функция - транслировать строку (полностью заполненную "0/1") в integer:
> 
> function readbin(var x:str): integer
> begin
>   var i, rc:integer;
> 
>   rc := 0;
>   for i := 0 to 31 do
>     begin
>     rc := rc * 2;
>     if x[i] = '1' then rc := rc + 1;
>     end;
> 
>   readbin := rc;
> end;
> 
> --
> #include <best/regards.hpp>
> Oleg I. KHOVAYKO
> (301)435-5885 || WEB: http://olegh.spedia.net
--- ifmail v.2.15dev5
 * Origin: Urals State University for Railway Transport (2:5080/1003@fidonet)