(1h->0001 2h->0010 ... F->1111)
Всё это обрабатывается в цикле.
Если надо сделать, то в другой раздел

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
Код: Выделить всё
a:=0; //a - число которое мы должны в итоге получить
r:=1;
while n>=1 do // n-число в той системе счисления из которой переводим
begin
a:=a+(n mod p)*r; // p- основание системы в которую переводим
r:=r*10;
n:= n div p;
end;
Код: Выделить всё
function dec2bin(x:integer):string;
var s:string;
begin
s:='';
while x>0 do
begin
s:=chr(ord('0')+x mod 2)+s;
x:=x div 2;
end;
dec2bin:=s;
end;
Код: Выделить всё
while x>0 do
begin
if x mod 16 <10 then
s:=chr(ord('0')+x mod 16)+s
else
s:=chr(ord('A')+(x mod 16 - 10))+s;
x:=x div 16;
end;
Код: Выделить всё
const N=20;{сколько символов отводится на запись числа}
var x,fracx:real; intx:longint;
begin
intx:=trunc(x);
fracx:=frac(x);
{Дальше intx переводится в 2х или 16х, как учили. Результат пусть лежит в строке s}
s:=s+'.';
while length(s)<=N do
begin
fracx:=fracx*2; {или на 16 соответственно}
s:=s+dec2bin(trunc(fracx)); {или опять же, dec2hex соответственно}
fracx:=frac(x);
end;