![]() |
Binärzahl in ASCII Schriftzeichen umwandeln
'loha Folks,
wie bekomme ich es hin, dass zum Beispiel Binär (0)1000001 in das Schriftzeichen A umgewandelt wird? Grüsse hirnstroem |
Re: Binärzahl in ASCII Schriftzeichen umwandeln
Wenn Dir der Binärwert als String vorliegt dann geht das so wie hier beschrieben ->
![]() Ach, den Integerwert mußt Du dann noch in ein Char wandeln chr(i); Oder den Code hier verwenden, ist etwas kürzer:
Delphi-Quellcode:
function BinToInt(Value: String): LongInt;
var i,Size: Integer; begin Result:=0; Size:=Length(Value); for i:=Size downto 0 do begin if Copy(Value,i,1)='1' then Result:=Result+(1 shl i); end; end; Grüße Klaus |
Re: Binärzahl in ASCII Schriftzeichen umwandeln
Vielen Dank Klaus!
Die Chr Routine war die Lösung. Grüsse hirnstroem |
Re: Binärzahl in ASCII Schriftzeichen umwandeln
Lass mich raten, das wird ein Assembler ? Da würdest du das nämlich auch brauchen.
|
Re: Binärzahl in ASCII Schriftzeichen umwandeln
Es wird kein Assembler, du darfst weiter raten : )
Nein, ich verwende dies letztenendes dafür, um den Code spezieller Schlüssel, welche von einem Fotochip optisch erfasst werden können, unkenntlich zu machen, dabei noch ein Paar Zeichen einzusparen und trotzdem noch eine dem jeweiligen Schlüssel eindeutig zuordenbare Nummer zuzuteilen von welcher sich nicht ohne weiteres auf den Code des Schlüssels schliessen lässt und welche aus ASCII Zeichen besteht. Dies wiederum wird benötigt um beim erfassen eines Schlüssels sichergehen zu können, dass das Gerät auch wirklich den richtigen Schlüssel erkannt hat. |
Re: Binärzahl in ASCII Schriftzeichen umwandeln
Moin Klaus,
bitte niemals Bitmanipulationen mit + vornehmen, auch wenn es in diesem Falle funktioniert. Man kann sich das zu leicht für Fälle angewöhnen, in denen es zu falschen Ergebnissen führt. Bit(s) setzen mit: Ergebnis = Wert OR Bitmaske Bit(s) löschen mit: Ergebnis = Wert AND NOT Bitmaske Bit(s) abfragen mit: Ergebnis = Wert AND Bitmaske Bit(s) bzw. Bitmaske, da es sich ja nicht immer zwingend um einzelne Bits drehen muss, sondern auch mal um Kombinationen. Deshalb sollte man auch nie +/- hierfür verwenden, da das Ergebnis dann auch ungültig für den jeweiligen Anwendungszweck werden könnte. |
Re: Binärzahl in ASCII Schriftzeichen umwandeln
Hallo,
wo werden denn hier Bits manipuliert? Da werden doch nur (Dezimal-)Zahlen addiert. Und das ist auch korrekt so. Gruß xaromz |
Re: Binärzahl in ASCII Schriftzeichen umwandeln
Hallo,
Zitat:
Ich würde es so lösen:
Delphi-Quellcode:
Gruß Hawkeye
function BinToInt (const Value: String): Cardinal;
var i : Integer; begin Result := 0; for i := 1 to Length(Value) do Result := 2 * Result + Ord(Value[i] <> '0'); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:18 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