![]() |
C++ Hexa in Binär/Dezimal
Hey Leute,
ich bin gerade dabei einen Umrechner auf Konsolenbasis in C++ zu schreiben. Es wirt dort ein Zahlensystem in ein anderes Zahlensystem umgewandelt. Bisher habe ich Dezimal in Binär, Dezimal in Hexa, Binär in Dezimal und Binär in Hexa geschrieben. Doch jetzt verzweifel ich irgendwie an Hexa zu Binär und Hexa zu Dezimal. Hat wer irgendwelche Lösungsansätze oder kann mir in der Richtung weiter helfen? Gruß Flo |
Jedem Zeichen in Hexadezimal ist ein Vierblock aus 0er und 1er zugeordnet, wenn zu z.B. Hexa ein A liest, dann kannst du Binaer 1010 schreiben oder 0100 wenn eine 4 da war. So kannst du den ganzen Hexastring Zeichen fuer Zeichen durchgehen, bei Dez genau so. Bei Zahlen ist hier nichts zu zu tun, nur bei den Buchstaben wie A mit 10 ersetzen.
|
[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]
Umwandlungen sind immer sehr ähnlich, ich denke, dass dein Binär zu Dezimal fast gleich sein sollte. Anstatt x0*2^0+x1*2^1+... wird halt x0*16^0+x1*16^1+... daraus. |
Okay, Das habe ich nun verstanden :D
Nun scheitert es aber auch an der Umsetzung :( Wie soll ich denn am besten anfangen? Soll ich meine Zahl die Ich eingeben in ein Arrey eingelesen werden und dann die Zahl auslesen und wie oben beschrieben daraus die Dezimalzahl ziehen? |
Wie hast du deine anderen Umwandlungen gelöst?
|
So.
Code:
switch(auswahl) |
Hex->Dez:
- Eingabe in einem String - Von rechts nach links auswerten wie oben beschrieben. x0*16^0 + x1*16^1 "1F" F*16^0 + 1*16^1= 15*1 + 1*16= 31 |
mhhh irgendwie will es einfach nicht in meinen KOPF :((((
@germgerm kannst du vielleicht ein Beispiel Code schreiben? EDIT: Kann mir vielleicht irgendwer anders bei dem Code helfen????? Gruß Flo |
Zitat:
Hex -> Dez: Code:
#include <iostream.h> |
Cool, ich danke dir schoneinmal :D
Nur was ich noch nicht verstanden habe ist, was das mit der ersten for schleife auf sich hat und wie man das mit dem k = false verstehen soll. sry mache c++ noch nicht sooo lange :P |
Wir haben ja ein Array von 101 Chars (hex) wo noch nichts drin steht.
Ich habe den Array dann einfach mit g's gefüllt, damit man später sieht, wie viele Zeichen der Benutzer eingegeben hat. Das 'k' ist einfach nur eine Hilfsvariable die am Anfang einfach mal auf false gesetz wird. Später wird der hex-Array rückwärts durchlaufen, wobei bei jedem Zeichen überprüft wird, ob es sich um ein 'g' handelt oder nicht. Wenn ja, wurde hier nichts vom Benutzer eingetragen und wenn nicht handelt es sich um eine Eingabe und die Berechnung des Dezimalwertes kann beginnen. Also wenn k = true, dann muss gerechnet werden. :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:05 Uhr. |
Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.