Fromulation de bits sous Python

Résolu
franckysnow91 Messages postés 6 Date d'inscription samedi 16 février 2008 Statut Membre Dernière intervention 24 octobre 2008 - 16 févr. 2008 à 18:10
lespinx Messages postés 106 Date d'inscription lundi 9 octobre 2006 Statut Membre Dernière intervention 23 novembre 2022 - 18 févr. 2008 à 23:59
Bonjour,
Je suis débutant en Python et après avoir cherché des heures sur la doc de python, je me tourne vers vous.
J'essaie de programmer l'algorithme AES (Advanced Encryption Standart) en python et je ne sais pas comment formuler un bit sous python ainsi que de procéder à des opération simples telles que l'addition de deux bits et la multiplication de deux bits puis par une opération modulo.
Comment puis-je faire ? Existe-t-il autrement des modules pratiques pour manipuler les bits ?
Merci de votre aide

1 réponse

lespinx Messages postés 106 Date d'inscription lundi 9 octobre 2006 Statut Membre Dernière intervention 23 novembre 2022 77
18 févr. 2008 à 23:59
Bonsoir
Voir ici  "BitManipulationet ici "%28%28BitManipulation%29%29 BitwiseOperators

par exemple:
# -*- coding: cp1252 -*-

#Représentation d'un nombre binaire
#   '0011' = 3 en décimal
#        2 = base du syteme (de 2 a 36)
x=int('0011',2)
y=int('0101',2)
print "x y en decimal",x,y

#Représentation d'un nombre décimal en binaire
# (d'après l'exemple cité dans le lien)
def bin(a):
    s=''
    t={'0':'000','1':'001','2':'010','3':'011',
       '4':'100','5':'101','6':'110','7':'111'}
    for c in oct(a)[1:]:
            s+=t[c]
    return s

#addition
print "x+y",bin(x+y)
#OU bit a bit
print "OU bit a bit",bin(x|y)
#OU exclusif
print "OU EXCLUSIF",bin(x^y)
#NON bit a bit
print"NON",bin(~x)
#ET bit a bit
print "ET",bin(x&y)

En espérant avoir apporté de l'eau au moulin.......
3
Rejoignez-nous