Solution de l'exercice :

Source : lesson_03_bit_shift.php Résultat
<?php
echo "Le décalage à droite est souvent utilisé pour les divisions 
    par les puissance de deux car il n'y a pas besoin dans ce cas de 
    tester si le diviseur est à 0, on obtient 0 sans erreur dans ce cas 
    (l'erreur 'division par 0' ne se produit jamais).<br/><br/>
    On voit dans las deux cas qu'au bout de 32 décalages, on est revenu
    au point de départ, on est donc bien sur un système 32 bits ! <p>"
;
echo 
"Décalage à gauche : <br/>";
echo 
"<small><table>";
for (
$i=$i<36 $i++)
{
    echo 
"<tr><td><small>1 </td><td> >></td>
            <td>
$i</td>
            <td><small>"
.( << $i )."</td>
          </tr>"
;
}    
?>
</table>
Le décalage à droite est souvent utilisé pour les divisions par les puissance de deux car il n'y a pas besoin dans ce cas de tester si le diviseur est à 0, on obtient 0 sans erreur dans ce cas (l'erreur 'division par 0' ne se produit jamais).

On voit dans las deux cas qu'au bout de 32 décalages, on est revenu au point de départ, on est donc bien sur un système 32 bits !

Décalage à gauche :

1 >> 0 1
1 >> 1 2
1 >> 2 4
1 >> 3 8
1 >> 4 16
1 >> 5 32
1 >> 6 64
1 >> 7 128
1 >> 8 256
1 >> 9 512
1 >> 10 1024
1 >> 11 2048
1 >> 12 4096
1 >> 13 8192
1 >> 14 16384
1 >> 15 32768
1 >> 16 65536
1 >> 17 131072
1 >> 18 262144
1 >> 19 524288
1 >> 20 1048576
1 >> 21 2097152
1 >> 22 4194304
1 >> 23 8388608
1 >> 24 16777216
1 >> 25 33554432
1 >> 26 67108864
1 >> 27 134217728
1 >> 28 268435456
1 >> 29 536870912
1 >> 30 1073741824
1 >> 31 2147483648
1 >> 32 4294967296
1 >> 33 8589934592
1 >> 34 17179869184
1 >> 35 34359738368


Tous droits réservés. 2005-2020