Frage zu C

Gast #410174
Hallo miteinander,

weiss jemand von euch, wie man 2 Char-Zeichen in eine float-Variable
umwandelt, geht das ueberhaupt??? Wuerde mir viel Arbeit ersparen, weil
ich sonst das Programm komplett umschreiben muesste.
Waer cool, wenn das jemand wuesste.

Gruss Thorsten D.
Mit der Beschreibung kann zumindest ich nichts anfangen.
Und ich wüde von mir selbst sagen, dass ich schon ne Menge
Schweinereien in C gemacht.

Wo kommen die Char her? Was ist da drinnen? Warum sind
es nur 2? Was ist das übergeordnete Ziel?
Gast
Ich empfange 2 Char-Zeichen und will daraus eine float-Zahl mit 2
Nachkommastellen machen, also zum Bsp. 0,23 (die 0 bleibt immer gleich
und die 2 Nachkommastellen will ich aus den 2Char-Zeichen herleiten).
Das muesste doch irgendwie gehn oder???
Gast
Danke Alter, es klappt!!!

Aber wie um Himmels Willen funktioniert die Formel???
Kannst du mir Sie noch kurz erlaeutern, verstehe Bahnhof.
Gruss Thorsten
Gast
FloatZahl = (Char[0]-'0') * 0.1 + (Char[1]-'0') *0.01;

funktioniert so:
zahlen in char variablen werden im ascii code dargestellt. was so viel
bedeutet dass eine '0' in der char variable als 0x30 eine '1' als
0x31 usw dargestellt werden.

willst du nun den eigentlichen wert deiner zahl wissen so musst du eben
diese 0x30 oder die ascii '0' subtrahieren. dann bekommst du eine
"normale" 0 (0x00) zurück mit der du dann weiterrechnen kannst.

tja. die multiplikation sollte klar sein.

andi
Gast
OK, danke fuer dei Antworten Leute, aber ncoh eine kleien Zugabe, ich
will noch was extra machen. ich will aus 5 einzelnen integer-Variablen
eine einzige unsigned int machen. Wie koennte ich das anstellen???
Also z.B. a=2 b=3 c=0 d=0 e=0 gibt ui=23000
Jemand ne Idee??
Alternativ kannst du auch noch die Horner Regel anwenden und
ein bischen optimieren.

  ui = (((((( a * 10 ) + b ) * 10 + c ) * 10 ) + d ) * 10 ) + e;

Jetzt muss nur noch der Compiler mitspielen und die Multiplikationen
mit 10 durch eine schnellere Additionens/Schiebe-Sequenz ersetzen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.