Den Vorsatz VAR bei deinem Parameter ewert brauchst du nicht, da du dort ja nichts zurückgeben willst. Hexadezimale Zahlen kannst du nur als String darstellen, genauso wie dezimale Zahlen und jede andere auch - der Computer arbeitet intern nur mit den dualen Zahlen in Binärdarstellung. Hexadezimal sind Zahlen zur Basis 16. Durch deine Rechenoperationen div 2 und mod 2 liegst du da aber etwas daneben.
Delphi-Quellcode:
function IntToDual(i: Cardinal): String;
const
BASIS = 2;
DIGITS: String[BASIS] = '01';
begin
Result := '';
repeat
result := DIGITS[Succ(i mod BASIS)] + Result;
i := i div BASIS;
until (i = 0);
end;
Mit ein paar Änderungen kannst du das an die Basis 16 anpassen. Allerdings musst du es morgen auch noch erklären können...
Gute Nacht