Hallo,
Also deinen Code umgewandelt würde folgendes ergeben:
Delphi-Quellcode:
program HexToBin;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
h:integer;
e,y,b:string;
begin
repeat
writeln('Gebe Hexadezimalzahl ein:');
readln(e);
b := '';
for i:= 1 to Length(e) do
begin
if e[i] = '0' then
b := b + '0000'
else
if e[i] ='1' then
b := b + '0001'
else
if e[i] = '2' then
b := b + '0010'
else
if e[i] = '3' then
b := b + '0011'
else
if e[i] = '4' then
b := b + '0100'
else
if e[i] = '5' then
b := b + '0101'
else
if e[i] = '6' then
b := b + '0110'
else
if e[i] = '7' then
b := b + '0111'
else
if e[i] = '8' then
b := b + '1000'
else
if e[i] = '9' then
b := b + '1001'
else
if e[i] = 'A' then
b := b + '1010'
else
if e[i] = 'B' then
b := b + '1011'
else
if e[i] = 'C' then
b := b + '1100'
else
if e[i] = 'D' then
b := b + '1101'
else
if e[i] = 'E' then
b := b + '1110'
else
if e[i] = 'F' then
b := b + '1111';
end;
writeln(b);
writeln('');
writeln('Beenden?[y]');
readln(y);
until y='y';
end.
ALLERDINGS:
Du solltest unabhängig von Groß- und Kleinschreibung prüfen.
Außerdem ist diese Lösung alles andere als ideal - Allerdings an deine Kenntnisse angepasst.
Das ganze wäre mit einem Case wahrscheinlich auch um einiges Übersichtlicher.
Einfacher wäre es aber auch den Hex-String in ein Integer umzuwandeln (IntToStr('$' + HexString)) und diese Zahl dann in einer Funktion in eine Binärzahl umzuwandeln.
Zu diesem Zweck hat DeddyH ja schon eine Antwort gegeben.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."