def table_verite_2bits(fonctionbool):
print('|{:^10}|{:^10}|{:^15}|'.format('a','b',fonctionbool.__name__+'(a,b)'))
for a in [True, False]:
for b in [True, False]:
print('|{:^10}|{:^10}|{:^15}|'.format(int(a), int(b), int(fonctionbool(a,b))))
table_verite_2bits(bool.__or__)
def ip2liste(ip):
return [int(champ) for champ in ip.split('.')]
def liste2ip(ipliste):
return '.'.join(str(n) for n in ipliste)
def prefixe_reseau(ip, masque):
"""Retourne le prefixe réseau à partir d'une adresse IP à partir dun masque
Vérification sur http://cric.grenoble.cnrs.fr/Administrateurs/Outils/CalculMasque/
"""
ipliste = ip2liste(ip)
masqueliste = ip2liste(masque)
return liste2ip([ipliste[k] & masqueliste[k] for k in range(4)])
def suffixe_machine(ip, masque):
ipliste = ip2liste(ip)
masqueliste = ip2liste(masque)
prefixeliste = ip2liste(prefixe_reseau(ip, masque))
return liste2ip([ipliste[k] ^ prefixeliste[k] for k in range(4)])
print(prefixe_reseau('145.245.11.254','255.255.252.0'))
print(suffixe_machine('145.245.11.254','255.255.252.0'))
def recherche_dicho2(L, e):
x = 0
n = len(L)
pas = n >> 1
while pas >= 1:
while x + pas < n and L[x + pas] <= e:
x = x + pas
pas = pas >> 1
return L[x] == e
recherche_dicho2([1,4,8,10],4)
public = 1 << 3
public
secret = 3
public = public | secret
public
bin(public)
public & ((1 << 2) - 1)
bin(1 << 8)
ord("\U0001F0A7")
chr(127143)
print("\U0001F0AD")
sept_pique = "\U0001F0A7"
print(reine_pique)
reine_carreau = "\U0001F0CD"
print(reine_carreau)
difference = ord(reine_carreau) ^ ord(reine_pique)
print(chr(difference))
difference
chr(ord(reine_carreau) ^ difference)