Parceque ca depend de l'ordre des octets en memoire: endianness[1]. le code de aldebran, lis le premier octets de l'entier.
x86 est little-endian par octet. Il stocke le nombre en memoire comme ceci:
0001 0000 | 0000 0001 | 0000 0000 | 0000 0000
Donc le resultat en sortie est "0001 0000" soit 16
ARM est big-endian (par octet). Il stocke le nombre en memoire:
0000 0000 | 0000 0000 | 0000 0001 | 0001 0000
Donc le resultat en sortie est "0000 0000" soit 0.
C'est un probleme d'endianness des processeurs.
Notons, que wikipedia indique que ARM est maintenant un processeur bi-endian, c'est a dire qu'il supporte les operations little endian et big-endian. mais un processeur POWER de IBM ou motorola, sont big endian.
[1] http://en.wikipedia.org/wiki/Endianness