![]() |
hex und Integer als Binärzahl adieren
[/dp]Hallo
und schon wieder hab ich ein umwandlungs und adier Problem. Ich habe ein Hex zahl: "404" in Binär.: 100 0000 0100 Dann habe ich noch einen Integer Wert 32: 10 0000 Jetzt soll des nicht wie man am einfachsten denkt andiert werden. Also nicht 100 0000 0100 + 10 0000 =100 0010 0100 Nein so brauche ich das nicht. Sondern es muss so adiert werden mit verschiebung. So halt 100 0000 0100 + 1 0000 0 =101 0000 0100 So muss dann mein ergebnis aussehen. Mein Problem ist, das ich nicht weiss wie ich meine Zahlen in binär umwandle. Und wie ich meine zweite zahl verschiebe. Ach und umwandlen will ichs auch wieder und zwar in einen hex wert. Des ergenis sollte dann 504 sein. mfg abi [edit=Christian Seehase]Doppelpost entfernt. Mfg, Christian Seehase[/edit] |
Re: hex und Integer als Binärzahl adieren
Moin abi,
musst Du jetzt das Ergebnis im binären Format ausgeben, oder wird auch schon einer der Werte binär eingelesen? |
Re: hex und Integer als Binärzahl adieren
Hai abi,
warum überhaupt in "binär umrechnen"? Binär ist doch nur eine andere Darstellungsart. Der Compiler rechnet immer mit Integern. (mal ganz ungenau gesagt). Es ist also egal wie Du es machst.
Delphi-Quellcode:
In allen drei Fällen ist das Ergebniss ein Integer mit dem Wert 2.
var
i1 : Integer; i2 : Integer; s1 : String; s2 : String; hs1 : String; hs2 : String; ergebniss : Integer; begin i1 := 1; i2 := 1; ergebniss := i1 + i1; s1 := '1'; s2 := '1;' ergegniss := StrToInt (s1) + StrToInt (s2); hs1 := '$1'; hs2 := '$1;' ergegniss := StrToInt (hs1) + StrToInt (hs2); end; |
Re: hex und Integer als Binärzahl adieren
Moin Christian
ne es wird kein Binär wert eingelessen und auch keiner Ausgelesen. Aber Binär wird des genau so adiert deshalb. Wollte ich des hier umrechnen. Aber wenn du ne besser Idee hast. Ich hab bestimmt nichts dagegen. ciao abi |
Re: hex und Integer als Binärzahl adieren
1) eine Bitverschiebung nach links entspricht einer Multiplikation mit 2 und umgekehrt
2) die Funktionen für die Typumwandlung findest du in der OH unter selbigem Stichwort |
Re: hex und Integer als Binärzahl adieren
Wenn du wirklich was von Dez --> Bin umrechnen willst hab ich dir hir eine funktion die ich mal geschrieben hab:
Delphi-Quellcode:
und noch die passende funktion um die binären zu addieren... :-)
function DezZuBin(zahl: Int64): String;
begin result := ''; repeat if (zahl mod 2) = 0 then result := '0' + result else result := '1' + result; zahl := zahl div 2; until zahl < 1; end;
Delphi-Quellcode:
function AddierBin(zahl, um: String): String;
var n : Integer; ueber: String; ergeb: String; begin while Length(zahl) < Length(um) do zahl := '0' + zahl; zahl := '0' + zahl; // 10 -> 010 while Length(um) < Length(zahl) do um := '0' + um; SetLength(ueber,Length(zahl)); for n := 1 to Length(ueber) do ueber[n] := '0'; SetLength(ergeb,Length(zahl)); // XOR for n := length(zahl) downto 1 do case (StrToInt(zahl[n]) + StrToInt(um[n]) + StrToInt(ueber[n])) of 0: ergeb[n] := '0'; 1: ergeb[n] := '1'; 2: begin ueber[n - 1] := '1'; ergeb[n] := '0'; end; 3: begin ueber[n - 1] := '1'; ergeb[n] := '1'; end; end; if ergeb[1] = '0' then ergeb := Copy(ergeb, 2, Length(ergeb) - 1); if ueber[1] = '0' then ueber := Copy(ueber, 2, Length(ueber) - 1); result := ergeb; end; |
Re: hex und Integer als Binärzahl adieren
Zitat:
|
Re: hex und Integer als Binärzahl adieren
Schon mal danke an alle.
Ich werde des wie stevie gesagt hat mit einer multiplication machen. Danke nochmal. mfg abi |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:28 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