Bei einer
ganzzahligen Division bilden zwei Werte das Ergebnis:
Der
größere Teil ist der, der bei einer Division mit gebrochenen Zahlen dem Teil
vor dem Komma entspricht.
Der
kleinere Teil ist der, der bei einer Division mit gebrochenen Zahlen dem Teil
nach dem Komma entspricht. Das ist der
Rest (Modulo). Dieser Rest wächst nicht zwingend mit dem Dividenden, sondern dreht sich im Kreis, nimmt dabei nur Werte an, die zwischen 0 und exklusive dem Divisor liegen:
Dividend : Divisor = Ganzzahlquotient Rest Modulo
0 : 7 = 0 Rest 0
1 : 7 = 0 Rest 1
2 : 7 = 0 Rest 2
3 : 7 = 0 Rest 3
4 : 7 = 0 Rest 4
5 : 7 = 0 Rest 5
6 : 7 = 0 Rest 6
7 : 7 = 1 Rest 0
8 : 7 = 1 Rest 1
9 : 7 = 1 Rest 2
10 : 7 = 1 Rest 3
11 : 7 = 1 Rest 4
12 : 7 = 1 Rest 5
13 : 7 = 1 Rest 6
14 : 7 = 2 Rest 0
15 : 7 = 2 Rest 1
…
Dieser Rest funktioniert quasi wie ein Kilometerzähler: Wenn die Anzahl der gefahrenen Kilometer die Darstellungsmöglichkeiten des Kilometerzählers übersteigt, dann wird der obere
(größere) Teil einfach abgeschnitten.
Bei der Maskierung funktioniert das ganz genauso: Die oberen
(„größeren“) Bits (hier: mit Wertigkeiten über 255, also 256 und aufwärts) werden einfach durch die UND-Verknüpfung ausgeschaltet, abgeschnitten. Das funktioniert allerdings nur, wenn der Divisor eine Zweierpotenz (1, 2, 4, 8, 16, 32, …) ist, in unserem Fall 256. Die Maske hat hier übrigens immer den Wert des Divisors minus eins (also z. B. 255), gibt quasi den Maximalwert an. (Nach einer UND-Verknüpfung von A und B ist das Ergebnis nie größer als A und auch nie größer als B.)
Jetzt alle Klarheiten beseitigt!?
Ark