Vinzenz Mai: Bitweiser Zugriff

Beitrag lesen

Hallo Peter,

$bitmask = Array(0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80);
if ($foo & $bitmask[$botposition])

Hab die Probe aufs Exempel gemacht und festgestellt, dass es mindestens eine Größenordnung langsamer ist. Der Spontantest war mittels PHP, daher nicht besonders repräsentativ, aber ganz zu vernachlässigen ist das sicher nicht.

mit einer ungeeigneten Sprache. PHP-Arrays sind - soweit ich weiß - verkettete Listen, so dass Du im Gegensatz zu C Deine Zugriffe auf Array-Elemente nicht
in konstanter Zeit erfolgen, sondern O(n) sind. Siehe dazu nochmals Martins Ausführungen.

d.h. bei Programmierung in C hättest eine schnellere Abarbeitung.

Freundliche Grüße

Vinzenz