Code:
#include <stdio.h>
// macht alles übersichtlicher
typedef unsigned long long int ulli;
void print_ulli(ulli i)
{
if (i > 10)
print_ulli(i / 10);
putchar(i % 10 + '0');
}
int main(void)
{
ulli i = 0x12345678FF;
print_ulli(i);
putchar('\n');
return 0;
}
Erklärung:
Wenn i größer ist als 10 (also mehr als eine Ziffer enthält) wird die Funktion rekursiv mit (i / 10) aufgerufen; Stellen nach dem Komma werden dabei automatisch abgeschnitten.
Anschließend wird i modulo 10 berechnet - dies gibt uns die letzte Ziffer von i.
Das wird dann zu '0' (dem ASCII-Code für eine Null) addiert.
Somit erhalten wir das ASCII-Zeichen der letzten Ziffer.
Dieses wird mit putchar in STDIO ausgegeben.