Hallo zusammen, ich habe eine Frage zum Schiften der Bits. Arbeite mit dem AVR Studio und einem ATmega162. Wenn ich mir zum Beispiel eine Variable anlege von Typ "long" und dieser Variable eine Zahl zuweise mit einer Kommerstelle. long gross = 12.7; Dann diesen wert auf einem Display ausgeben lasse. Ist das Problem das die Ganzzahl sich darstellen lässt aber die Zahl nach der Kommerstelle nicht. Wie muss ich die bits Shiften das ich nur den Bereich nach der Kommerstelle in einen Integer Wert schreiben kann oder ist das ein ganzfalscher Ansatz? int klein; klein = (int)gross << 8; Gruß und danke im vor raus ^^ Dominik
Hi, ich kann aber nur "Integer" Zahlen am Display ausgeben wie konvertiere ich denn dann so was???
12,7 nicht schieben sondern mit 10 erweitern -> 127 127 kannst du wieder ausgeben, mußt nur noch das KOMMA richtig setzen.
Wie ist es Möglich die Stellen hinter dem Kommer bei einer Float Variable in eine Integer variable zu bekommen??? Float kann ich nicht Shiften oder Undieren musste ich leider feststellen. float temporary; // Bsp: Wert 12,7 int time; int time2; long temporary2; /*****************************/ time = (int)temporary;//gibt die Zahlen vor dem "," aus. Geht auch ^^ temporary2 = (long)temporary; temporary2 = temporary2 >>16; temporary2 = temporary2 & 0xFFFFFF00; time2 = (int)temporary2;//Hier soll die Zahl hinter dem "," rein.
Frank N. wrote: > 12,7 nicht schieben sondern mit 10 erweitern -> 127 > > 127 kannst du wieder ausgeben, mußt nur noch das KOMMA richtig setzen. Hast den (richtigen) tip von Frank nicht gelesen? Du speicherst einfach die Zahl int x = 127 ausgeben tust du dann x/10, und x % 10 mit schiften wird das nix, das geht nur bei zweierpotenzen, oder fix komma format. (sowas kennt aber C mein ich nicht)
hallo, mach das doch mit sprintf. wandelt die float zahl in einen string. den kannst du ausgeben.
sprintf mit Gleitkommaunterstützung muss für die meisten Mikroprozessoren explizit mit einkompiliert werden und kostet dann ordentlich Platz.
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.