Im Übrigen macht Amateurprofis NeededLength auch nichts wesentlich anderes, und ich bezweifele, ob ein Funktionsaufruf und langsames bsr schneller sind.
Hallo gammatester,
vielleicht solltest du nicht nur bezweifeln sondern prüfen.
Ich habe mal mit den Werten 0, 2^0..31 getestet.
Die nachstehende Tabelle zeigt von links nach rechts folgende Daten
1) Der Wert der umgewandelt wurde.
2) CPU-Ticks für deine IntToBin.
3) CPU-Ticks für meine IntToBin.
4) CPU-Ticks für deine Ermittlung der benötigten Länge.
5) CPU-Ticks für meine Ermittlung der benötigten Länge.
Mein zusätzlicher Funktionsaufruf und das so langsame "bsr" ist im (Vergleich zu deiner Methode) genau so schnell bis 7 Mal so schnell.
Code:
0 238 110 / 50 50
1 568 110 / 374 50
2 484 136 / 358 50
4 484 152 / 340 50
8 492 178 / 330 50
16 494 204 / 322 50
32 500 220 / 306 50
64 518 238 / 288 50
128 520 264 / 280 50
256 534 288 / 262 50
512 544 314 / 246 50
1024 552 340 / 238 50
2048 568 356 / 228 50
4096 578 382 / 212 50
8192 586 408 / 204 50
16384 594 432 / 188 52
32768 604 450 / 170 50
65536 612 476 / 162 50
131072 630 502 / 144 50
262144 706 526 / 136 50
524288 714 612 / 128 50
1048576 730 630 / 110 50
2097152 730 670 / 102 50
4194304 748 680 / 92 50
8388608 756 714 / 84 50
16777216 782 730 / 84 50
33554432 782 748 / 68 50
67108864 792 774 / 68 50
134217728 808 798 / 60 50
268435456 824 826 / 58 50
536870912 840 850 / 58 50
1073741824 858 866 / 50 58
2147483648 892 884 / 50 50