Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente | Prochaine révision Les deux révisions suivantes | ||
binaire [2010/01/17 11:16] tyrtamos |
binaire [2012/03/06 14:19] 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 | + | ==== Rotation à droite d'un mot de n bits, avec injection |
+ | |||
+ | Rotation à droite | ||
+ | |||
+ | <code python> | ||
+ | rotd = lambda b, n: (b>> | ||
+ | </ | ||
+ | |||
+ | Rotation à droite | ||
+ | |||
+ | <code python> | ||
+ | rotd = lambda b, k=1, n=8: ((b>> | ||
+ | </ | ||
+ | |||
+ | Simplification pour 8 bits | ||
+ | |||
+ | <code python> | ||
+ | rotd = lambda b, k=1: ((b>> | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Rotation à gauche d'un mot de n bits, avec injection à droite des bits perdus | ||
+ | |||
+ | Rotation à gauche de 1 bit | ||
+ | |||
+ | <code python> | ||
+ | rotg = lambda b, n=8: ((b<< | ||
+ | </ | ||
+ | |||
+ | Rotation à gauche de k bits: | ||
<code python> | <code python> | ||
- | rotd = lambda b, nb: (b>>1) | ((b&1)<<(nb-1)) | + | rotg = lambda b, k=1, n=8: ((b<<k)|(b>> |
</ | </ | ||
- | ==== Rotation à gauche d'un mot de nb bits, avec injection du bit de gauche, à droite ==== | + | Simplification pour 8 bits |
<code python> | <code python> | ||
- | rotg = lambda b, nb: ((b<<1)& | + | rotg = lambda b, k=1: ((b<<k)|(b>> |
</ | </ | ||