![]() |
Integer to Binary ??
Hallo Zusammen,
ich würde gerne wissen ob es mit einer bethode wie zb IntToBin Integer Zahlen nach Binär umzuwandeln oder gibts da nur die möglichkeit mit dem errechnen ? Schonmal vielen Dank 5etH |
Re: Integer to Binary ??
IntToBin wandelt einen Interger in String um.
Der String besteht aus 0 und 1. Halt der Wert des Intergers in Binärdarstellung. Rechnen kannst Du damit nicht. Dazu ist der Integer da. Grüße Klaus |
Re: Integer to Binary ??
![]() Edit: Leichter verständlich ist es wohl, wenn du (Eingang shr i) and 1 <> 0 durch odd(Eingang shr i) ersetzt. |
Re: Integer to Binary ??
also ich hab jetzt ein programmteil der so aussieht
Delphi-Quellcode:
aber leider bekomme ich diese fehlermeldung:
Var test : Integer;
test2 : String; begin test := 13; test2 :=IntTOBin(test); showmessage(test2) [DCC Fehler] Unit7.pas(58): E2010 Inkompatible Typen: 'string' und 'procedure, untyped pointer or untyped parameter' |
Re: Integer to Binary ??
Zitat:
Poste mal die ganze Prozedur, heißt die Prozedur auch test? Grüße Klaus |
Re: Integer to Binary ??
procedure TForm7.Button1Click(Sender: TObject);
Var test : Integer; test2 : String; begin test := 13; test2 :=IntTOBin(test); showmessage(test2) end; |
Re: Integer to Binary ??
Das geht bei mir einwandfrei:
Delphi-Quellcode:
IntToBin ist eine der vielen erwähnten möglichen Funktionen aus der
function IntToBin(Value: Cardinal): string;
var I: Integer; begin SetLength(Result, 32); for I := 1 to 32 do begin Result[I] := Char(Ord('0') + (Value shr 31)); Inc(Value, Value); end; end; procedure TForm1.Button1Click(Sender: TObject); var test: Integer; test2: string; begin test := 13; test2 := IntToBin(test); ShowMessage(test2) end; ![]() Grüße Edit: Nutze bitte, wie zuvor auch, die [delphi]-Tags. ;) |
Re: Integer to Binary ??
super aber wie kann ich das so justieren das der string nur 8 stellen hat also nur ein byte lang ist da ich ein programm für subnetmasking erstellen will und wenn ich die zeile
Delphi-Quellcode:
zu
SetLength(Result, 32);
Delphi-Quellcode:
ändere bekomme ich nur 8 nullen
SetLength(Result, 8);
und nicht 00001101 oder hab ich die funktion nicht verstanden ? |
Re: Integer to Binary ??
Cardinal ist 32bit breit, also sollten
auch 32 Stellen im String zu finden sein. Wenn Du nur 8 Stellen brauchst gibt es mehrere Möglichkeiten: a) Du baust Dir eine Funktion function byteToBin(b:Byte):String; b) du löscht die ersten 24 Stellen des Strings c) du kopierst Dir die letzten 8 Stellen des Strings in einen anderen String. Grüße Klaus |
Re: Integer to Binary ??
Hallo, da ein Cardinal 32 Bit groß ist, kannst du Byte (8 Bit) nehmen:
Delphi-Quellcode:
Theoretisch kannst du den Cardinal auch auf 8 Bit runterschrauben:
function IntToBin(Value: Byte): string;
var I: Integer; begin SetLength(Result, 8); for I := 1 to 8 do begin Result[I] := Char(Ord('0') + Value shr 7); Inc(Value, Value); end; end;
Delphi-Quellcode:
Doch letzteres nur zum Verständnis. Für 8 Bit wäre ein Cardinal übertrieben.
function IntToBin(Value: Cardinal): string;
var I: Integer; begin SetLength(Result, 8); for I := 1 to 8 do begin Result[I] := Char(Ord('0') + (Value and $FF) shr 7); Inc(Value, Value); end; end; Grüße Edit: Da war einer schneller. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:54 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