Im Endeffekt sind es einfach alles nur unterschiedliche Repräsentationen der gleichen Zahl. 42 im Dezialsystem ist binär 101010. Im Speicher deines Rechners (oder deines AVRs) liegt die Zahl genau so, weil der Speicher eben nur 0 und 1 kennt. Auch die Arithmetik findet komplett auf Basis dieser Zustände statt.
So ausgeschrieben sind die Zahlen für Menschen aber unhandlich, deshalb fasst man vier Binärzahlen zu einer Hexadezimalzahl zusammen, 42 entspricht dabei 2A. Nun kommt es relativ oft vor, dass du (zum Beispiel bei Bitmanipulationen) etwas mit einzelnen Bits machen willst, du wirst mit zunehmendem Lernfortschritt dann eher zur hexadezimalen Schreibweise tendieren (weil sie einfach kürzer ist).

Ach ja: Um unterscheiden zu können, auf bezüglich welcher Basis die Zahl dargestellt wird, schreibt man in der Programmiersprache C bei Binärzahlen ein 0b und bei Hexadezimalzahlen ein 0x davor (Genau genommen ist das 0b eine GCC-Erweiterung). Im normalen Sprachgebrauch wird oft auch ein "d" "h" oder "b" angehängt, also: 42d = 2Ah (Die Kleinschreibung macht den Unterschied!) = 101010b

Äh ja, und zur Basis: Im Dezimalsystem ist die Basis 10, jede Stelle ist also 10 Mal so stark gewichtet wie ihr Vorgänger (42 = 4*10 + 2*1). Im Binärsystem verdoppelt sich der Wert jeder Stelle (42 = 1*32 + 0*16 + 1*8 + 0*4 + 1*2 + 0*1), im Hexadezimalsystem wird mit vielfachen von 16 multipliziert (42 = 2*16 + 10*1)

mfG
Markus