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?
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???
Danke Alter, es klappt!!! Aber wie um Himmels Willen funktioniert die Formel??? Kannst du mir Sie noch kurz erlaeutern, verstehe Bahnhof. Gruss Thorsten
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
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??
Du bist aber schon arg fantasielos. Ist doch das gleiche Prinzip wie vorhin! ui = a * 10000 + b * 1000 + c * 100 + d * 10 + e;
Vor der nächsten Frage würde ich ihn erklären lassen, wer ihm gesagt hat, dass er das wollen soll... Gruss, Dominic
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.
OK, danke. Tschuldigung, bin halt net son Ferak wie ihr, brauch immer etwas laenger... :-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.