Hallo Jack,
ich habe folgende Zeile gefunden:
input = input >> 4;
schön - ich hätte das sogar als
input >>= 4;
formuliert. Ist noch kürzer und kompakter. Aber das nur nebenbei.
Was ich weiß, ist das ich dadurch den Ganzteiligen Anteil bei einer Division durch 16 bekomme. Ich verstehe aber nicht warum.
Was macht denn der Operator ">>" ? Er schiebt alle Bits des Operanden nach rechts. Und eine Verschiebung um ein Bit nach rechts ist gleichbedeutend mit einer Division durch zwei, genauso wie im Dezimalsystem eine Verschiebung um eine Stelle nach rechts einer Division durch 10 entspricht.
In deinem Beispiel wird der Wert nun nicht nur um eine Bitposition verschoben, sondern sogar um vier. Das entspricht also viermal hintereinander einer Division durch 2, insgesamt also 2^4=16.
Kann mir da mal einer auf die Sprünge helfen.
Befasse dich ein bisschen mit Binärarithmetik, wenn es dich wirklich näher interessiert.
Schönen Abend noch,
Martin
Du kannst dem Leben nicht mehr Tage geben.
Aber dem Tag mehr Leben.