Exercice 1
Combien de livres de 500 pages (roman broché), peut-on stocker sur une clé USB de 32 Go ?
Une page d'un livre broché est composée en moyenne de 36 lignes de 60 caractères soit 2160 caractères (espaces compris).
Si nous prenons un codage en ASCII, chaque caractère est codé sur 1 octet ce qui fait 2160 octets pour coder une page.
Soit pour 500 pages : 500 x 2160 = 1 080 000 octets soit 1054 Ko soit encore 1,03 Mo.
Sur une clé USB de 32 Go on peut donc stocker en théorie (32 x 1024) / 1,03 = 32 768 / 1,03 = 31 813 livres.
En utilisant un codage Unicode sur 16 bits cela ne farait plus que 15 906 livre.
Exercice 2
Combien de décalage (à gauche ou à droite ?) sont nécéssaires pour passer de la valeur 710 à la valeur 5610 ?
Un décalage à gauche revient à multiplier la valeur binaire par 2.
Il faut donc 7 x 2 = 14 puis 14 x 2 = 28 puis 28 x 2 = 56 soit 3 décalages succéssifs.
Voyons cela avec une représentation de 7 en binaire sur 8 bits.
00000111 # Valeur initiale 7 en binaire. 00001110 # On décale à gauche et on complète à droite avec un 0 00011100 # Décalage n°2 00111000 # Décalage n°3 qui donne 56
Exercice 3
Réaliser en Python le décalage précédent.
>>> 7<<3 56
Exercice 4
Ecrire en python une fonction table(a,b)
correspondant à la table de vérité suivante :
a | b | Op |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
def table(a,b): return (a & b)|(a & ~b)|(b & ~a) >>> table(0,0) 0 >>> table(0,1) 1 >>> table(1,0) 1 >>> table(1,1) 1