Théoriquement, je n'en sais rien, ça dépend de beaucoup de facteurs (compilateur, OS, processeur).
Le mieux c'est de tester :
new i;
new T, T1;
new Col, Col2;
T=GetTickCount ();
for (i=0 ; i<10000000 ; i++)
{
Col = (random (0xFFFFFF)<<8)+0xFF;
}
T1=GetTickCount ();
printf ("Temps 1 : %d", T1-T);
T=GetTickCount ();
for (i=0 ; i<10000000 ; i++)
{
Col = (random (0xFFFFFF)<<8)|0xFF;
}
T1=GetTickCount ();
printf ("Temps 2 : %d", T1-T);
Résultat :
[09:53:25] Temps 1 : 662
[09:53:26] Temps 2 : 701
L'addition semble donc plus rapide que le OU inclusif sur ma machine (Windows XP, Core2 Duo). Il n'est pas sûr que ce soit le cas sous Linux (mais l'absence de GetTickCount ne permet pas de faire ce test).
Mais bon, le test porte sur 10 000 000 de calculs pour une différence de l'ordre de 40 ms. On peut donc considérer que c'est négligeable dans les conditions d'utilisation normale de ce calcul (1 fois par connexion d'un joueur).
++
Syg