mikrocontroller.net

Forum: Compiler & IDEs Bits aus hex extrahieren


Autor: Herrmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Stehe vor dem Problem das ich ein GLCD ANsteuern will.

Ich habe z.b ein Hex format für ein Bitmap.

nun will ich einzelene pixel screiben aus einer hex.

z.b

0x00,0x1c,0xff


in einer schleife 0 bis 7 will ich schauen ob das bit =1 für Pixel 
sezten oder bit=0 für nicht setzten.

0x00 = 00000000
0x1c = 00011100

in einen codestück habe ich folgendes gesehen

for(j=0;j<8;j++)
{
if(ox1c&(32>>j))
{setztepixel()
}
else
{löschepixel()
}
}

da bekomme ich aber nur 6 stellen statt 8.

was hat diese Bitverschiebung zu bedeuten???


Danke

Herrmann

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ersetze die 32 im Codefragment durch 128.

Autor: klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> in einen codestück habe ich folgendes gesehen
> was hat diese Bitverschiebung zu bedeuten???

da du uns die Zielplattform nicht nennst, von "gesehenen" Code redest, 
hilft ein Blatt Papier. Male die Bits nach jedem Schleifendurchgang auf 
und versuche so das ganze nachzuvollziehen.

ein Tipp: 32 ist das 6. Bit in einem Byte

Autor: Herrmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ja habe es eben auch bemerkt.

32 ist das 6 bit das 8 bit ist 128 damit gehts.

Danke

Manchmal hat man eben doch ein brett vorm kopf.
Habe das ganze mal mit DEV CPP  Durchgespeilt.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Herrmann schrieb:

> Manchmal hat man eben doch ein brett vorm kopf.

das man selbst dorthin platziert hat.
Wenn du auf Bitebene operierst, dann sind Dezimalzahlen so ziemlich die 
unübersichtlichste Zahlendarstellung die du wählen kannst. OK. Du 
hättest noch Zahlen zur Basis 27 nehmen können. Das wäre noch 
unübersichtlicher gewesen.

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>ein Tipp: 32 ist das 6. Bit in einem Byte

Das ist das fünfte Bit, denn 2^5=32.

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matthias Lipinsky schrieb:
>>ein Tipp: 32 ist das 6. Bit in einem Byte
>
> Das ist das fünfte Bit, denn 2^5=32.

Na, wenn wir schon kleinlich werden wollen, dann aber richtig. ;-)

Es ist Bit 5, aber es ist das 6. Bit. So was wie "nullte" gibt es 
nämlich gar nicht, weder sprachlich, noch logisch.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.