pdf : pour impression
Binaire #
1. Conversion binaire vers décimal. #
Donnez les valeurs entières décimales représentées par les nombres :
0b101
0b10101
0b0101
0b00101
0b1101 1101
0b1001 0111
0b1011 1000
2. Examen d’une représentation binaire #
On considère a = 0b1010 0110
et b = 0b11 1101
Dans cet exercice on essaye d’éviter de passer par le décimal
- Lequel des deux est le plus grand ?
- Ces nombres sont-ils divisibles par 2 ? Pourquoi ?
- Combien de bits occupe la représentation binaire de
a + b
?
3. Conversion décimal vers binaire. #
-
Convertir les nombres suivants en binaire :
- 12
- 23
- 35
- 127
- 211
- 254
- 231
-
On considère des entiers représentés sur 1 octet. Quel est le plus grand entier représentable ?
-
Calculer mentalement les puissances de 2 jusque $2^{20}$.
-
Comparer les représentations binaires de 16 et 15 ; de 32 et 31 ; de 64 et 63 ?
-
Généralisons : quelles sont les représentations binaire de nombre de la forme $2^k$ et $2^k-1$ ?
-
En remarquant que $2~048=2^{11}$, donner la représentation binaire de $2022$.
2048 = 0b 1000 0000 xxxx 2047 = 0b 111 1111 xxxx 25 = 0b 1 xxxx 2022 = 0b 111 1110 xxxx
4. Binaire et python #
Python permet d’obtenir la représentation binaire d’un entier à l’aide de la
fonction bin
. Voici ce qu’on obtient avec help(bin)
:
Help on built-in function bin in module builtins:
bin(number, /)
Return the binary representation of an integer.
>>> bin(2796202)
'0b1010101010101010101010'
Inversement, la conversion d’une base $b$ vers la représentation décimale
s’obtient en passant à int
une chaîne de caractères ainsi que la base.
Voici ce qu’on obtient avec help(int)
class int(object)
| int([x]) -> integer
| int(x, base=10) -> integer
|
| Convert a number or string to an integer, or return 0 if no arguments
| are given. If x is a number, return x.__int__(). For floating point
| numbers, this truncates towards zero.
|
| If x is not a number or if base is given, then x must be a string,
| bytes, or bytearray instance representing an integer literal in the
| given base. The literal can be preceded by '+' or '-' and be surrounded
| by whitespace. The base defaults to 10. Valid bases are 0 and 2-36.
| Base 0 means to interpret the base from the string as an integer literal.
| >>> int('0b100', base=0)
| 4
-
Quelle instruction saisir pour obtenir la représentation décimale de
0b1101001
? -
$x$ est un entier dont la réprésentation binaire est
110100
. Donner deux instructions différentes permettant d’obtenir sa représentation décimale. -
Quel sera le résultat des instructions suivantes ?
>>> bin(123) >>> int("0b1111") >>> int("0b10101", 2) >>> bin(0) >>> int("0b101211", 2)
-
Python accepte la notation
0b110
pour représenter un entier, en l’occurence 6…Qu’obient-on pour les opérations suivantes ?
>>> 0b101 + 2 >>> bin(0b110 + 0b1110)
5. Capacité #
Dépassement de capacité : si l’on représente des nombres sur une taille fixe, par exemple 8 bits, alors on ne peut dépasser $0b1111~1111 = 255$. Toute opération dont le résultat dépasse $255$ provoque un dépassement de capacité.
-
Parmi les additions suivantes, lesquelles vont provoquer un dépassement de capacité lorsque les nombres sont encodés sur 8 bits ?
- $1111\hspace{2mm}1011 + 1001\hspace{2mm}1111$
- $1001\hspace{2mm}1011 + 0111\hspace{2mm}1011$
- $0011\hspace{2mm}1011 + 1001\hspace{2mm}1001$
- $1010\hspace{2mm}1011 + 0001\hspace{2mm}0100$
-
La taille d’une somme binaire nécessite de connaître les valeurs manipulées. Ce n’est pas le cas d’un produit.
Quelle sera le nombre de bits des valeurs suivantes ?
- $0110 \times 1100$
- $1111\hspace{2mm}0011 \times 1101\hspace{2mm}0101$