kein pc wissen
Cadet 4th Year
- Registriert
- Feb. 2008
- Beiträge
- 90
Hallo
Ich habe in Delphi eine Funktion geschrieben, die Integer-Zahlen in Binärzahlen umrechnet. Mein erster Versuch die Ausgabewerte als Real heraus zu geben scheiterte daran, dass Werte ab einer gewissen Größe nur noch mit *10^x herausgegeben wurden. Mein neuer Versuch war deshalb, die Ausgabewerte als String zu verwenden.
Die Funktion sieht so aus: (Uses Math muss hinzugefügt werden)
Die Probleme, die es bei der Fkt. gibt sind folgende:
Wo kann der Fehler in der Fkt. liegen?
Um Antwort wird gebeten
Ich habe in Delphi eine Funktion geschrieben, die Integer-Zahlen in Binärzahlen umrechnet. Mein erster Versuch die Ausgabewerte als Real heraus zu geben scheiterte daran, dass Werte ab einer gewissen Größe nur noch mit *10^x herausgegeben wurden. Mein neuer Versuch war deshalb, die Ausgabewerte als String zu verwenden.
Die Funktion sieht so aus: (Uses Math muss hinzugefügt werden)
Code:
function IntToBin(Input:integer):string;
var
i:integer;
min:integer;
max:integer;
begin
max:=round((ln(Input)/(ln(2))));
for i:=max downto 0 do
begin
if (Input >= (power(2,max))) and (Input < (2*(power(2,max)))) then
begin
result:=result+'1';
end
else
begin
result:=result+'0';
end;
Input:=Input-round(power(2,max));
end;
end;
Die Probleme, die es bei der Fkt. gibt sind folgende:
- Wenn Input=0 ist das Programm kaputt
- Die Zahlen 1 und 2 sind mit die einzigen, die richtig umgewandelt werden
- Andere Zahlen werden mit einer Reihe '0000' angezeigt
Wo kann der Fehler in der Fkt. liegen?
Um Antwort wird gebeten