Umwandeln HEX in Binärzahl

Gast #366717
Also ich programmiere in WINAVR mit C

Bascomm will ich nicht nutzten.


ich muß eine Funktion schreiben die einen HEX wert enthält und einen
Binärwert zurückgibt .
#366720
Du solltest dir Gedanken über die Darstellung von Zahlen in Prozessoren
und in der Digitalelektronik allgemein machen.
Ein Prozessor kann nur eine einzige Darstellung von Zahlen: binär. Ob
du in deinem Programm nun 0xF7 oder 247 oder 0b11110111 schreibst, ist
völlig egal.
Gast #366721
Also ich benötige die Umrechnung für ein GLCD.

Dort wird in einer Header Datei die Font abgelegt in HEX.

0xF7 bsp.

nun lese ich die Font

0xF7 und muß sie Bitweise untersuchen.
bitarray[8]=0xF7 natürlich vorher als binär umgerechnet das ist ja
meine frage

for (i=0;i<8;i++)
{
if(bitarray[i]==0)
{
schreibedaten(forecolor);
}
else
schreibedaten(backcolor);
}
}

das bedeutet ich definiere mir eine Schriftfarbe forcolor=schwarz und
eine Hintergrundfarbe =weiss

wenn der Bit gesetzt ist schreibt er ein schwarzez Pixel wenn nicht ein
Weisses.

am ende sieht man ein Zeichen auf dem DSP.

deshalb ist es wichtig das ich hex in binär umrechne.
#366722
"deshalb ist es wichtig das ich hex in binär umrechne."

Das ist Quatsch mit Soße.

Ganzzahlen werden in der CPU binär dargestellt.
Du kannst sie also nicht "in binär umrechen", weil sie schon binär
sind.

Du brauchst einfach nur ne Union zu machen aus einem Byte und dem
Bitfeld.

Allerdings ist bei den meisten Compilern das Rechnen mit Bitfeldene
extrem ineffizient.
Daher werden Bitfelder sehr selten benutzt und lieber geschoben und
maskiert:
1
unsigned char val, i;
2

3
for( i=8; i; i-- ){
4
  if( val = 1 )
5
    schreibedaten(forecolor);
6
  else
7
    schreibedaten(backcolor);
8
  val >>= 1;
9
}


Peter

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.