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=0 ; $i<36 ; $i++) { echo "<tr><td><small>1 </td><td> >></td> <td>$i</td> <td><small>".( 1 << $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 |
|