V
naja, im Endeffekt arbeitest du dann auf der Basis 256 (da unsigned char = 1 Byte). Das heißt intern arbeitest du immer mit der Basis 256, was im Fall der Addition, Subtraktion, etc relativ einfach ist. Zur Ausgabe gehst du dann auf die Basis 10 und gibst es aus (z.b. in eine File oder auf stdout). Dazu musst du umrechnen zwischen den Basen (so ähnlich machts meines Wissens nach auch die GMP). Für die Multiplikation von großen Zahlen würd ich mir was einfallen lassen, da die einfache Multiplikation an sich ja relativ langsam ist (Stichwort --> Faltung ansehen), gibts auch Lösungswege dafür, soweit ich weiß.
Wenn du wirklich alles für diese Zahlen in C selbst schreiben willst, is das ne Menge Holz, also wenn du beliebige Datentypen als sehr große Zahlen darstellen willst, brauchste da einiges an Arbeit. Wenn dus bloß benutzen willst, würd ich die GMP verwenden. Allerdings kannst du es auch selbst machen. Mit dem Ansatz kannst du theoretisch (natürlich eingeschränkt durch den vorhandenen Speicher) den Zahlenbereich unendlich erweitern.