|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Igor Zakhrebetkov 2:5024/11 07 Oct 2002 20:13:28 To : All Subject : Re: Как закодировать? -------------------------------------------------------------------------------- > А вот в СТАHДАРТHОМ (борландовские извращения меня не интересуют) Паскале А в СТАHДАРТHОМ Паскале даже файл открыть нельзя - имен у файлов нет. > битовых операций и сдвигов для целых нет. Так что придется делать через div > и odd (или mod), да еще контролировать кол-во знаков (из-за "клонирования" > знакового разряда). Либо через запись с вариантами, где одно поле - целое, а > второе - множество. А для примера (только не для флейма по поводу эффективности) еще одна процедура почти на СТАHДАРТHОМ Паскале со старой запыленной дискеты :)) ============= procedure STRINT(var A: string; N, { исходное число } RADIX, { основание числа (1..16) } L: INTEGER { треб. длина результир.строки } ); { преобразование целого числа N в символьную строку A } { в соответствии с заданным основанием от 2 до 16 и длиной L } label 99; const DIGIT:string[16]='0123456789ABCDEF'; var I, M: INTEGER; SIGN: BOOLEAN; begin if (RADIX<2) or (RADIX>16) then RADIX:=10; SIGN:=(N<0); if SIGN then N:=-N; A[0]:=chr(L); repeat if L<1 then goto 99; M:=N mod RADIX; N:=N div RADIX; a[L]:=DIGIT[M+1]; dec(L); until N=0; if SIGN and (L>0) then begin a[L]:='-'; L:=L-1; end; for I:=1 to L do a[I]:=' '; 99: end { STRINT }; ============= -- Игорь Захребетков --- Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.2a) Gecko/20020910 * Origin: Sweet Home (2:5024/11.0) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/34293cd666b74.html, оценка из 5, голосов 10
|