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__)
| a | b | __or__(a,b) | | 1 | 1 | 1 | | 1 | 0 | 1 | | 0 | 1 | 1 | | 0 | 0 | 0 |
def table_verite_2bitsV2(fonctionbool):
print('|{:^10}|{:^10}|{:^15}|'.format('a','b',fonctionbool.__name__+'(a,b)'))
for a in [1, 0]:
for b in [1, 0]:
print('|{:^10}|{:^10}|{:^15}|'.format(bool(a), bool(b), int(fonctionbool(bool(a),bool(b)))))
table_verite_2bitsV2(bool.__or__)
| a | b | __or__(a,b) | | 1 | 1 | 1 | | 1 | 0 | 1 | | 0 | 1 | 1 | | 0 | 0 | 0 |
table_verite_2bitsV2(bool.__xor__)
| a | b | __xor__(a,b) | | 1 | 1 | 0 | | 1 | 0 | 1 | | 0 | 1 | 1 | | 0 | 0 | 0 |
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'))
145.245.8.0 0.0.3.254
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)
True
public = 1 << 3
public
8
secret = 3
public = public | secret
public
11
bin(public)
'0b1011'
public & ((1 << 2) - 1)
3
bin(1 << 8)
'0b100000000'
ord("\U0001F0A7")
127143
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))
j
difference
106
chr(ord(reine_carreau) ^ difference)
'🂧'