Общее·количество·просмотров·страницы

четверг, 9 февраля 2012 г.

дня 4 морально разлагался)решил написать небольшой юнит для работы с СС,думаю студентам\школьникам пригодится.Переводит из 10 в другие(двоичную,3,4,5,6,7,8,9,16) и назад.

unit Notation;


interface




uses sysutils;
function DECtoX(x:longint;z:word):string;
function XtoDEC(s:string;x:word):extended;
implementation




function DECtoX(x:longint;z:word):string;
var q,i:integer;
    s,t,num:string;
begin
     repeat
           q:=x mod z;
           x:=x div z;
           if q>9 then t:=chr(ord('A')-10+q)
           else str(q,t);
           s:=s+t;
     until x=0;
     for i:=1 to length(s) do
     num:=num+s[length(s)-i+1];
     result:=num;
end;




function in_extent(a,b:extended):extended;
begin
result:=exp(b*ln(a));
end;


function XtoDEC(s:string;x:word):extended;
var q:extended;
i,n,e:integer;


begin
     q:=0;
     for i:=1 to length(s) do
     begin
          val(s[i],n,e);
          if e<>0 then n:=10+ord(UpCase(s[i]))-ord('A');
          q:=q+in_extent(x,length(s)-i)*n;
     end;
     result:=q;
end;


end.
Пример использования:



a:=xtodec('A',16);




f:=dectox(round(a),2);

ну и т.д.

Комментариев нет:

Отправить комментарий