AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit Integer zu Binär

Ein Thema von PierreB · begonnen am 21. Jan 2005 · letzter Beitrag vom 22. Jan 2005
Antwort Antwort
Seite 1 von 2  1 2      
PierreB
(Gast)

n/a Beiträge
 
#1

Problem mit Integer zu Binär

  Alt 21. Jan 2005, 13:18
Moin,

mittels folgendem Code (Danke an Luckie ) wandle ich Integerzahlen ins Binärformat um:
Code:
function IntToBin(Int: Integer): String;
var
  i : Integer;
begin
  Result := '';
  for i := 7 downto 0 do
  Result := Result + IntToStr((Int shr i) and 1);
end;
Es kunktioniert auch alles gut, nur leider steht dann bei der Ausgabe z.b. wenn ich 7 umrechne erhalte ich: 00000111. Wie kann ich aber die überflüssigen Nullen vor der eigentlichen Zahl löschen? Also das nur die "richtige" Zahl, in dem Falle 111 da steht ?

Vielen Dank,
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Problem mit Integer zu Binär

  Alt 21. Jan 2005, 13:20
Entweder im String direkt löschen (Delphi-Referenz durchsuchenDelete, Delphi-Referenz durchsuchenPos) oder mittels Hier im Forum suchenFormat.
  Mit Zitat antworten Zitat
PierreB
(Gast)

n/a Beiträge
 
#3

Re: Problem mit Integer zu Binär

  Alt 21. Jan 2005, 13:28
Ja, mit Pos und Delete hab ichs schonmal versucht, aber leider waren dann alle Nullen weg. Das Problem ist auch das, dass ich ja nicht weiß wann die "richtige" Zahl beginnt...
  Mit Zitat antworten Zitat
s14

Registriert seit: 15. Mai 2003
Ort: München
251 Beiträge
 
Delphi 7 Architect
 
#4

Re: Problem mit Integer zu Binär

  Alt 21. Jan 2005, 13:38
Vielleicht geht's mit

While Pos('0', s) = 1 do Delete(s, 1, 1) S ist natürlich der String.
  Mit Zitat antworten Zitat
Benutzerbild von SubData
SubData

Registriert seit: 14. Sep 2004
Ort: Stuhr
1.078 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Problem mit Integer zu Binär

  Alt 21. Jan 2005, 13:39
Mit dieser Funktion macht er keine Nullen voran:

Delphi-Quellcode:
function DezToBin(Zahl: Int64): String;
begin
  Result:='';
  repeat
    if Zahl mod 2 =0 then
    begin
      Result := '0' + Result;
    end else
    begin
      Result := '1' + Result;
    end;
    Zahl := Zahl div 2;
  until Zahl = 0;
end;
Ronny
/(bb|[^b]{2})/
  Mit Zitat antworten Zitat
PierreB
(Gast)

n/a Beiträge
 
#6

Re: Problem mit Integer zu Binär

  Alt 21. Jan 2005, 13:44
Code:
(Zahl: Int64)
Hm, is das Integer64 ? Gibs das in D3 schon ??
Mein D3 sagt undefinierter Bezeichner !
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Problem mit Integer zu Binär

  Alt 21. Jan 2005, 13:51
Dann nimm doch einfach integer.
  Mit Zitat antworten Zitat
PierreB
(Gast)

n/a Beiträge
 
#8

Re: Problem mit Integer zu Binär

  Alt 21. Jan 2005, 13:55
Ok, vielen Dank !
  Mit Zitat antworten Zitat
czapie

Registriert seit: 17. Nov 2002
Ort: Berlin
384 Beiträge
 
Delphi 5 Standard
 
#9

Re: Problem mit Integer zu Binär

  Alt 21. Jan 2005, 13:57
Zitat:
Das Problem ist auch das, dass ich ja nicht weiß wann die "richtige" Zahl beginnt
Na wenn du von links durchgehst, wenn die erste 1 kommt, bzw. wenn nur noch ein Zeichen übrig was null ist.
Was man zu verstehen gelernt hat, fürchtet man nicht mehr.
(Marie Curie)
http://www.cafes-in-berlin.com
  Mit Zitat antworten Zitat
Benutzerbild von Kedariodakon
Kedariodakon

Registriert seit: 10. Sep 2004
Ort: Mönchengladbach
833 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Problem mit Integer zu Binär

  Alt 21. Jan 2005, 14:14
Hier was fixes...
glaub ich

Delphi-Quellcode:
Function   IntToBinString( Const Value:   Integer; Trim: Boolean = False ): String;
Var   i:         Byte;
Begin
   SetLength( Result, 32 );
   For   i := 31 Downto 0 Do Begin
      If ( Value And ( $80000000 Shr ( 31 - i ) )Shr i ) = 1
         Then Result[ 32 - i ] := '1'
         Else Result[ 32 - i ] := '0';
   End;
   If Trim Then Result := Copy( Result, Pos( '1', Result ), Length( Result ) );
End;
Bye
Christian
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 18:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz