EDIT: Was bedeutet bei Zitat:
fputc(myint >> 8,fp);
Die >> und die Zahl?
http://de.wikibooks.org/wiki/C-Progr...tsshift_.3E.3E

Verschiebt also die Bits um die angegebene Anzahl von Stellen:
Bsp: interne Darstellung eines Wertes:
01001 shift >> 1 ergibt 00100
01001 shift >> 3 ergibt 00001



Wofür das im Bsp benutzt wird: ein Int bei C auf einer üblichen Plattform (usw.) 4 Bytes groß.
0x80001000 sieht intern so aus:
Byte1:___Byte2:____Byte3:___Byte4:
10000000 00000000 00010000 00000000

da fputc nur 1 char=1Byte schreibt, wird die Zahl "abgeschnitten" und nur Byte Nummer 4 geschrieben.

ein Shift verschiebt nun die Bits um eine angegebene Anzahl von Stellen:
SHIFT >> 8
Ergebnis:
Byte1:___Byte2:____Byte3:___Byte4:
00000000 10000000 00000000 00010000
Die Bits sind also um 8 Stellen (größe eines Bytes) nach rechts gerückt.
wie man sieht, ist das Byte1 deshalb nun an Stelle von 2, Byte2 ist an Stelle von 3 gerückt und Byte3 an Stelle von Byte4
wenn man nun fputc ausführt, schreibt man das Byte Nummer 3 in die Datei (weil es nun an der vierten Stelle steht).

SHIFT >>16
Byte1:___Byte2:___Byte3:___Byte4:
00000000 00000000 10000000 00000000
Wurde also um 16 Stellen nach rechts verschoben, jetzt steht Byte1 an Stelle von 3 und Byte 2 an Stelle von 4.
nun würde man mit fputc das zweite Byte schreiben.

Und weil das sonst zu einfach wäre und um die nächtste Frage zu verhindern: ja, der Code schreibt zuerst Byte4 rein, dann Byte3 usw. In der Datei landen die Bytes also in der umgekehrten Reihenfolge: Byte4,Byte3,Byte2,Byte1
Grund dafür ist, dass auf den meisten Desktops eingesetzte CPUs die IA-32 nutzen (=Intelarchitektur-Standarddefinition, also das "Interface" der CPU, wird oft auch als 0x86 oder 0x386 bezeichnet, und ja AMD CPUs gehören auch dazu ) und damit Little Endian Byte-Reihenfolge einsetzen.

Nunja, ich hoffe, das war verständlich genug. Kann allerdings eine ausführliche Beschäftigung mit dem Thema nicht ersetzen, sofern du wirklich Low-Level mäßig programmieren möchtest