www.mikrocontroller.net

Forum: Compiler & IDEs Umwandeln HEX in Binärzahl


Autor: HerrmannA (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ICh muß einen HEX-Wert 0x0c in Binär umwandeln

gibt es da wie bei bascom fertige funktionen???

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gibts bestimmt wenn du kundtätest womit du es denn nun programmieren
willst. Ansonsten nutz doch Bascom.

bye

Frank

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1100

Autor: HerrmannA (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 .

Autor: Jan M. (mueschel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie meinst du das? Die Funktion erhält einen String der Form "0xF7"
und soll einen String der Form "11110111" zurückgeben?

Autor: HerrmannA (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aslo


char* hex_bin(char* hexwert)
{

Umrechnung?????

return (binwert);
}

Autor: Jan M. (mueschel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: HerrmannA (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"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:
unsigned char val, i;

for( i=8; i; i-- ){
  if( val = 1 )
    schreibedaten(forecolor);
  else
    schreibedaten(backcolor);
  val >>= 1;
}


Peter

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
muß natürlich val&1 heißen:
unsigned char val, i;

for( i=8; i; i-- ){
  if( val & 1 )
    schreibedaten(forecolor);
  else
    schreibedaten(backcolor);
  val >>= 1;
} 

Peter

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zur Anregung für den Thread Opener:

http://www.mikrocontroller.net/forum/read-1-340388.html

Da ist das mit den Zahlendarstellungen schon mal reichlich
ausdiskutiert worden (OK, da gehts um Hex und Dezimal-Darstellung, aber
wenn mit Hex- und Binärdarstellung schon Probleme auftreten...)

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.