eingabe von zahlen im hex format

  • geschlossen
  • C

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • eingabe von zahlen im hex format

    hey leute,

    bin mir einen umrechner am basteln, welcher von einem beliebeigen zahlensystem ins andere umrechnet. Dezimal in jedes beliebige funktioniert einwandfrei.
    nun musste ich aber die eingabe bisschen modifizieren, damit die zahlen im ascii code eingelesen werden, da ja auch buchstaben eingegeben werden können. anschliessend wollte ich entsprechend minus rechnen, damit ich vom ascii code in dezimal komme und von da einfach umrechnen kann.
    Nun mein Problem ich lese die Zahl mit %s in eine int variable ein. soweit sogut. ich hab jetzt mal gleich unter der eingabe eine ausgabe gemacht, welche mir den aktuellen wert der int Variable im dezimal format ausgibt. Bie einstelligen zahlen und buchstaben kein problem, ich bekomm exakt den ascii code wert.
    wenn ich jetzt aber eine zweistellige zahl eingebe, bekomme ich einen sehr hohen wert bei eingabe von 'A5' beispielsweise, steht nacher in der int Variable 13633, hab schon verschiedene werte und berechnungsmöglichkeiten ausprobiert, jedoch seh ich kein muster in den ausgegebenen zahlen.

    Hoffe jemand kann mir helfen, was passiert wenn ich eine Zwei oder höherstellige Zahl eingebe? Eigentlich dacht ich, dass die beiden Ascii werte einfach addiert werden, aber dem ist wohl nicht so.

    Hoffe auf Hilfe;)

    grüsse sheester
  • ich hab nicht so genau verstanden, was du eigentlich willst...
    so etwas wie das vielleicht?

    hexadezimalzahl in ascii -> dezimalzahl in ascii?
    [COLOR="Green"]"A dream you dream alone is only a dream. A dream you dream together is reality"[/color]

    John Lennon

    [SIZE=1],,,[/SIZE][SIZE=1]*̡͌l̡*,,,,,,,,,,̡̡ ̴̡ı̴̴̡ ,,,,,,,,,*̡͌l̡*,,,,,,,,,,*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*_,,,,,,,,̡̡ ̴̡ı̴̴̡ ,,,,,,,,*̡͌l̡*,,[/SIZE][SIZE=1],,,[/SIZE][SIZE=1],,,,,,̡̡ ̴̡ı̴̴̡ ,[/SIZE][SIZE=1],,[/SIZE]
    [SIZE="1"][COLOR="Purple"]Up 1[/color][/SIZE] [SIZE="1"] [COLOR="Olive"]Up 2_The_Beatles_Red_Album[/color][/SIZE]
  • Ralph Peter schrieb:

    ich hab nicht so genau verstanden, was du eigentlich willst...


    hmm jo ich weiss is bisschen unklar geschrieben. ich versuchs nochmals;)

    also mein hauptziel ist es, eine Zahl in einem beliebigen Zahlensystem z.b hex oder oktal einzugeben (zahlensysteme von 2-36) und dann in ein beliebiges zahlensystem umzuwandeln und auszugeben. Die Routine von Dezimal in ein beliebiges zahlensystem von 2-36 funktioniert ohne probleme.
    Nun wollte ich es halt so erweitern, dass man eine zahl in einem bliebigen zahlensystem eingeben kann.
    Nun ist das Problem ja, dass die zahlensysteme über dem dezimalsystem, buchstaben besitzen.
    nun hatte ich die idee, ich könnte die Zahl im Ascii code einlsesen, dann eine entsprechende zahl subtrahieren und bekomme dann die dezimalzahl.
    Leider aber wenn ich nun eine zweistellige zahl eingebe, addiert sich der asciiwert der beiden zahlen nich einfach so wie ich angenommen habe, sondern es kommt eine komische zahl heraus, in welcher ich noch kein muster erkennen konnte.

    Meine hauptsächliche frage ist nun, was passiert mit dem ascii code, wenn ich z.b. 22 eingebe. Werden die Ascii werte addiert, multipliziert oder was passiert?

    hoffe nun ist mien problem bisschen klarer;)

    lg sheester
  • Naja prinzipiell musst du ja eh beim einlesen wissen welches Zahlensystem das ist.
    Also musst du das ja auch deiner Umrechenfunktion mitteilen.
    Und imho ist die Lösung deines Problems recht einfach.
    Vielleicht aber nicht die beste, hab schon lange nichts mehr gemacht in C.
    Lies die "zahl" als String/Array ein. Dann kannst du Zeichen für Zeichen durchgehen und soviel rumbasteln und Zeugs drauf anwenden wie du möchtest.
    Da es ja eine Kombination aus Buchstaben und Zahlen ist, ist es ja sowieso kein Int mehr. Deswegen imho auch die seltsamen Werte.

    Btw.: Das das Ding eigentlich überhaupt richtig läuft ist schon höchst merkwürdig ^^. Aber naja C schluckt so einiges *g*