pythonListSelfTest1
Je teste mes connaissances :
Stockage, décalage, binaire & python

Exercice 1

Combien de livres de 500 pages (roman broché), peut-on stocker sur une clé USB de 32 Go ?

>>> Proposition de solution - Proposition de solution - Proposition de solution <<<

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 ?

>>> Proposition de solution - Proposition de solution - Proposition de solution <<<

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.

>>> Proposition de solution - Proposition de solution - Proposition de solution <<<
>>> 7<<3
56

Exercice 4

Ecrire en python une fonction table(a,b) correspondant à la table de vérité suivante :

abOp
000
011
101
111
>>> Proposition de solution - Proposition de solution - Proposition de solution <<<
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	


Contribution : Ne pas hésiter à proposer des énoncés d'exercices ... Avec corrections ;)