• Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Quelques notions d'informatique binaire
#1
Quelques notions d'informatique


Le binaire est en fait le premier langage de la machine, c'est une suite de 1 et/ou de 0 qui symbolise l'ouverture ou la fermeture de portes électroniques (pour faire plus court). Cela donne en fait quelque chose comme : 011000110100001110101100111011011100111010110011001100110010 . Il est évident que trouver ne serait-ce que le début de quelque chose cela devient vite un casse-tête. Mais ce n'est pas ce qui nous intéresse.

Pour faire beaucoup plus court sachez simplement ceci :
  1. En informatique tout est binaire.
  2. Le binaire est sur une base de 2, autrement dit si je compte jusqu'à trois cela donne 0,1,2,3 en décimal et 00,01,10,11 en binaire.
  3. Un bit correspond à une valeur binaire quelque soit la valeur 0 ou 1, 3 bits correspondent donc par exemple à 001.
  4. Un octet ou byte est codé sur 8 bits cela donne huit 0 ou 1 au maximum quelque en soit l'ordre de placement, un mot correspond à 16 bits, un mot long à 32 bits.
  5. On compte les bits en commençant toujours de la droite vers la gauche et le premier bit compté sera toujours zéro, si je compte 3 bits cela donnera 210. Si je devais compté 8 bits cela me donnerait : 76543210
Les conversions
La conversion du binaire vers le décimal se fait sous la forme : (valeur du bit n°2)* 2^2 + (valeur du bit n°1)* 2^1 + (valeur du bit n°0)* 2^0 ...
si je devais traduire 11 en décimal cela donnerait : (valeur du bit n°1)*2^1 + (valeur du bit n°0)* 2^0 = 1*2^1 + 1*2^0 = 3
pour 10100111 cela donnerait : (bit 7)*2^7 + (bit 6)*2^6 + (bit 5)*2^5 + (bit 4)*2^4 + (bit 3)*2^3 + (bit 2)*2^2 + (bit 1)*2^1 + (bit 0)*2^0 = 1*2^7 + 0*2^6 + 1*2^5 + 0*2^4 + 0*2^3 + 1*2^2 + 1*2^1 + 1*2^0 = 167
Si vous souhaitez faire la conversion d'une valeur décimale en valeur binaire la méthode la plus simple consiste à diviser cette valeur décimale par 2 en notant le reste de la division et de recommencer l’opération avec le quotient et cela jusqu’à 0, par exemple convertissons la valeur 199 :
199/2 = 99 => reste 1
99/2 = 49 => reste 1
49/2 = 24 => reste 1
24/2 = 12 => reste 0
12/2 = 6 => reste 0
6/2 = 3 => reste 0
3/2 = 1 => reste 1
1/2 = 0 => reste 1

Puis on remet en forme binaire en commençant par la fin des divisions soit : 11000111

Ceci étant dit et même s'il reste beaucoup de chose à en dire, nous allons regarder un peu le coté pratique du binaire en programmation.
Ce qu'il y a intéressante dans le binaire c'est que par exemple un octet peut nous dire 8 choses au minimum, chacune de ces choses étant signifié par un bit et chacune de ces choses étant définie par le programmeur. Cela sert la plupart du temps à "dire" qu'une action ou un état est en cours ou réalisable ... ou pas.
Un petit exemple, rien que pour vous :
Deux bitmasks pour définir  :
  1. Un état :


    1. Vivant bit 0 => 1
    2. Mort bit 0 => 0
    3. Assis bit 1 => 1
    4. Couché bit 2 => 1
    5. Debout bit 3 => 1
  2. Une action :


    1. Immobile bit 0 => 0
    2. Avancer bit 1 => 0
    3. Reculer bit 1 => 1
    4. Courir bit 2 => 0
Valeur de l'état => 1001
Valeur de l'action => 110

Traduction de l'état :
Le bit 0 de l'état est à 1 alors le joueur est vivant.
Le bit 3 est à 1 alors le joueur est debout.

Comme le joueur est debout, on va traduire l'action en cours.
Le bit 1 est à 1 alors le joueur avance.
Le bit 2 est à 1 alors le joueur court.

C'est très pratique car cela évite d'utiliser dans notre exemple 9 variables de 8 bits au minimum.

Je vous parlerai bien de l’hexadécimal mais ce n'est pas le sujet. Quoique ...
Si tu avances, tu meurs ... si tu recules, tu meurs ... alors dis moi ... pourquoi tu recules ?
(Proverbe Mongole)


  Répondre




Utilisateur(s) parcourant ce sujet : 1 visiteur(s)