Andreas Görtz: Bitweiser Zugriff

Beitrag lesen

Hi Peter,

ist es via PHP möglich, auf ein bestimmtes Bit einer Variablen zuzugreifen? Ich denke nicht an ($a & pow(2, n)) für das n-te Bit von hinten, da so erst 2^n ausgerechnet wird, doch in meinem Anwendungsfall macht das einen großen Teil der Zeit aus.

Wenn die Anwendung so zeitkritisch ist, solltest du, falls möglich, nicht PHP nehmen. Beispiel (10 Millionen Bitverschiebungen um 8 Bits nach links):

ag@bart:~$ time php -r 'for ($i = 0; $i < 10000000; $i++) 1<<8;'

real    0m8.571s
user    0m7.633s
sys     0m0.025s

im Gegenzug ein kleines C-Programm (test.c):

  
int main (void)  
{  
  int i;  
  for (i = 0; i < 10000000; i++) 1<<8;  
  
  return 0;  
}  

ag@bart:~$ gcc test.c
ag@bart:~$ time ./a.out

real    0m0.037s
user    0m0.023s
sys     0m0.002s

Wenn ich bei dem C-Programm keinen Bock geschossen habe, würde ich sagen, es lohnt sich ;-)

Gruß,
Andreas.