Shiften aber wie?

OP #877694
Lesenswert?
• ▲
▼
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
OP #877932
Lesenswert?
• ▲
▼
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.
Persönliche Seite #877934
Lesenswert?
• ▲
▼
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)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 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.