Le binaire

I/ Logique

Le binaire est basé sur deux niveaux logiques :

En hommage à George Boole, False et True s'appellent des booléens. En 1937, Claude Shannon a trouvé un moyen de calculer les fonctions booléennes à l'aide de relais.

1) Négation

a not a
0 1
1 0

2) Conjonction

and 0 1
0 0 0
1 0 1

3) Disjonction

or 0 1
0 0 1
1 1 1

II/ Entiers naturels

Le nombre représenté en binaire ci-dessus est 0.

1) En Python

a) De décimal à binaire

>>> bin(2020)
'0b11111100100'

b) De binaire à décimal

>>> int('1101',2)
13

2) Hexadécimal

>>> hex(2020)
'0x7e4'

III/ Caractères

1) Ascii

En ASCII, chaque caractère est représenté par un octet :

   2 3 4 5 6 7       30 40 50 60 70 80 90 100 110 120
 -------------      ---------------------------------
0:   0 @ P ` p     0:    (  2  <  F  P  Z  d   n   x
1: ! 1 A Q a q     1:    )  3  =  G  Q  [  e   o   y
2: " 2 B R b r     2:    *  4  >  H  R  \  f   p   z
3: # 3 C S c s     3: !  +  5  ?  I  S  ]  g   q   {
4: $ 4 D T d t     4: "  ,  6  @  J  T  ^  h   r   |
5: % 5 E U e u     5: #  -  7  A  K  U  _  i   s   }
6: & 6 F V f v     6: $  .  8  B  L  V  `  j   t   ~
7: ' 7 G W g w     7: %  /  9  C  M  W  a  k   u  DEL
8: ( 8 H X h x     8: &  0  :  D  N  X  b  l   v
9: ) 9 I Y i y     9: '  1  ;  E  O  Y  c  m   w
A: * : J Z j z
B: + ; K [ k {
C: , < L \ l |
D: - = M ] m }
E: . > N ^ n ~
F: / ? O _ o DEL

2) Unicode

Ascii ne suffisant pas, on utilise Unicode.

3) En Python

a) Code

>>> ord('A')
65

b) Caractère

>>> chr(65)
'A'
>>> chr(128000)
'🐀'
>>> chr(128020)
'🐔'

IV/ Entiers relatifs

Le nombre représenté en binaire ci-dessus est 0.

V/ Nombres non entiers

Pour représenter un nombre non entier en binaire, on utilise :

  1. Un bit de signe
  2. Un exposant (puissance de 2)
  3. Une mantisse.

Un exemple simplifié.

En Python, le type des nombres non entiers est float.