AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Dezimal nach Dual umwandeln

Ein Thema von Luckie · begonnen am 2. Aug 2006 · letzter Beitrag vom 2. Aug 2006
Antwort Antwort
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#1

Re: Dezimal nach Dual umwandeln

  Alt 2. Aug 2006, 02:27
Zunächst möchte ich mal meine Variante euch nicht vorenthalten, ist eine Vereinfachung des ersten Codes:
Delphi-Quellcode:
function DecToBin(Value: Cardinal): String;
begin
  repeat
    Result := IntToStr(Value mod 2) + Result;
    Value := Value div 2;
  until Value = 0;
end;
Zum zweiten Code:
Es liegt einfach daran, dass die Schleife von 7 auf 0 runterläuft und somit nur die rechten 8 Bits behandelt werden.
Man müsste also vorher die Anzahl der benötigten Bits berechnen (bei Cardinal maximal 32 ) und dann die Schleife z.B. von 31 auf 0 runter laufen lassen. Das funktioniert, getestet!
Die führenden Nullen dann zum Schluss noch zu entfernen sollte wohl nicht das Problem sein.

//Edit:
Die Anzahl der benötigten Bits zu berechnen ist ja eigentlich ganz einfach, so spart man sich auch das Entfernen der überflüssigen Nullen.
Die FOR-Schleife müsste also wie folgt abgeändert werden:
for i := Floor(Log2(Value)) downto 0 do
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz