020
04.05.2003, 14:54 Uhr
virtual
Sexiest Bit alive (Operator)
|
So krank find ich den Algo garnicht. Und mit den 255 bin zuerst auch nicht klar gekommen, aber ist schon logisch: die ersten Drei Zeilen summieren die Bits pro bytes auf. Mit dem Modulo wird dann implicit eine Addition gemacht. Wenn man dann noch hingeht und die Constanten wie folgt ersetzt:
C++: |
0x55555555 => ((unsigned int)(-1))/3 0x33333333 => ((unsigned int)(-1))/5 0x0f0f0f0f => ((unsigned int)(-1))/17
|
Dann funktioniert der Kram nicht nur für 32 Bit integer sondern für Platformen bis 248 Bit, also real betrachtet für einen 128 Bit rechner. Mit einem Link kann ich augenblicklich nicht dienen, ich habs mir vor jahren mal aus der dclc geholt, ich nehme an, man kann danach googlen... -- Gruß, virtual Quote of the Month Ich eß' nur was ein Gesicht hat (Creme 21) |