Warning: Undefined array key "DOKU_PREFS" in /home/clients/a4e6fc1ce1761b72982b805de0f418c4/web/python/mesrecettespython/inc/common.php on line 2082
binaire [Les recettes Python de Tyrtamos]

Outils pour utilisateurs

Outils du site


binaire

Warning: Undefined array key -1 in /home/clients/a4e6fc1ce1761b72982b805de0f418c4/web/python/mesrecettespython/inc/html.php on line 1458

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
binaire [2010/01/17 11:15]
tyrtamos
binaire [2012/03/06 14:25]
tyrtamos
Ligne 166: Ligne 166:
 ===== Quelques fonctions complémentaires de calcul binaire ===== ===== Quelques fonctions complémentaires de calcul binaire =====
  
-==== Rotation à droite d'un mot de nb bits, avec injection du bit de droite, à gauche ====+==== Rotation à droite d'un mot de bits, avec injection à gauche des bits perdus à droite ==== 
 + 
 +Rotation à droite de 1 bit
  
 <code python> <code python>
-rotd = lambda b, nb: (b>>1) | ((b&1)<<(nb-1))+rotd = lambda b, n=8((b>>1)|(b<<(n-1)))&((1<<n)-1)
 </code> </code>
  
-==== Rotation à gauche d'un mot de nb bits, avec injection du bit de gaucheà droite ====+Rotation à droite de bits (valable pour k de 0 à nbornes incluses):
  
 <code python> <code python>
-rotg = lambda b, nb: ((b<<1)&(2**nb-1)) ((b>>(nb-1))&1)+rotd = lambda b, k=1, n=8: ((b>>k)|(b<<(n-k)))&((1<<n)-1)
 </code> </code>
  
 +Simplification pour 8 bits (valable pour k de 0 à 8, bornes incluses)
 +
 +<code python>
 +rotd = lambda b, k=1: ((b>>k)|(b<<(8-k)))&0xFF
 +</code>
 +
 +
 +==== Rotation à gauche d'un mot de n bits, avec injection à droite des bits perdus à gauche ====
 +
 +Rotation à gauche de 1 bit
 +
 +<code python>
 +rotg = lambda b, n=8: ((b<<1)|(b>>(n-1)))&((1<<n)-1)
 +</code>
 +
 +Rotation à gauche de k bits (valable pour k de 0 à n, bornes incluses):
 +
 +<code python>
 +rotg = lambda b, k=1, n=8: ((b<<k)|(b>>(n-k)))&((1<<n)-1)
 +</code>
 +
 +Simplification pour 8 bits (valable pour k de 0 à 8, bornes incluses)
 +
 +<code python>
 +rotg = lambda b, k=1: ((b<<k)|(b>>(8-k)))&0xFF
 +</code>
 +
 +\\
 +Amusez-vous bien!
 +
 +
 +<html>
 +<head>
 +<style type="text/css">
 +<!--
 +body {background-image:url(fondcorps.jpg);}
 +-->
 +</style>
 +</head>
 +<body>
 +</body>
 +</html>
  
binaire.txt · Dernière modification: 2012/03/06 14:25 de tyrtamos