Ich versuche grade zum 2. Mal in die AVR Programmierung mit C einzusteigen. Die Grundzüge und Kontrollstrukturen der Sprache sind mir vom Programmieren am Computer aus bekannt und stellen daher kein Problem dar. Es ist mir gelungen avr-gcc einzurichten und ich kann mit einer makefile das Programm auch direkt in den Controller flashen. Soweit Alles prima.

Nun zu meinem eigentlichen Problem. Am AVR sind ja alle IO Pins in Ports zu je 8 Stück zusammengefasst. Aufgrund der Beschaffenheit von C kann ich nun nicht jeden Pin einzeln ansprechen, sondern ich muss eine Zahl in das entsprechende Port(-richtungs-)byte schreiben, die den Zustand aller 8 pins am Port beinhaltet. In Binär ist das kein Problem. "00000101" würde beispielsweise Pin 0 und 2 des Ports einschalten, bzw. als Ausgang definieren. Nun ist es aber verhältnismäzig umständlich diese Bitfolgen in Binär zu schreiben, bzw. es dauert einfach relativ lang. Daher benutzen viele Leute anscheinend hex. Ich bin mir darüber im klaren, wie das hexadezimalsystem funktioniert, aber ich komme nicht dahinter, was es so einfach macht Bitfolgen in hex darzustellen. Wenn ich das machen wollte müsste ich den hexwert einer Bitfolge entweder in einer Tabelle nachschlagen, oder ihn Mühevoll umrechnen. Aber dann könnte ich ja auch gleich das dezimalsystem verwenden, oder? Kann mir bitte jemand erklären, wie ich von einer (binären) Bitfolge auf einen Hexwert komme, ohne auf eine dieser Möglichkeiten zurückzugreifen? Fände ich echt klasse von euch, denn ich komme einfach nicht dahinter.