Мне не понятен сам код программы, объясните какими действиями что мы делаем.
Код программы писал не я, увы

function DEC2BIN(DEC: LONGINT): string;
var
BIN: string;
I, J: LONGINT;
begin
if DEC = 0 then
BIN := '0'
else
begin
BIN := '';
I := 0;
while (1 shl (I + 1))