« Algèbre de Boole/Utiliser le système binaire » : différence entre les versions

Contenu supprimé Contenu ajouté
Ligne 43 :
 
===Numération de position===
 
Le codage le plus courant est l'équivalent en base deux de la [[Système arithmétique positionnel|numération de position]] que nous utilisons quotidiennement en base 10.
 
====Représentation des entiers positifs====
 
Pour trouver la représentation binaire d'un nombre, on le décompose en somme de puissances de 2. Par exemple avec le nombre dont la représentation [[système décimal|décimale]] est 59 :
59 = '''1'''×32 + '''1'''×16 + '''1'''×8 + '''0'''×4 + '''1'''×2 + '''1'''×1
59 = '''1'''×2<small><sup>5</sup></small> + '''1'''×2<small><sup>4</sup></small> + '''1'''×2<small><sup>3</sup></small> + '''0'''×2<small><sup>2</sup></small> + '''1'''×2<small><sup>1</sup></small> + '''1'''×2<small><sup>0</sup></small>
59 = '''111011''' en binaire
 
Avec n [[bit (informatique)|bit]]s, ce système permet de représenter les nombres entre 0 et 2<sup>n</sup>-1. <!-- Aurait plutôt sa place dans un article [[compter sur ses doigts]]. -->Il est donc possible de compter sur ses dix doigts jusqu'à 1023 (2<small><sup>10</sup></small>-1) en binaire. Il suffit d'affecter à chaque doigt une valeur binaire (pouvant être représenté par un doigt plié).
 
[Pour Robertv, avec 10 doigts on peut compter jusqu'à 1023.
En effet si chaque doigt représente une puissance de 2 avec la convention doigt levé, alors la puissance de 2 est retenue (1 en binaire); doigt replié, alors la puissance de 2 n'est pas retenue (0 en binaire).
 
Doigt Main Puis. Valeur en
de 2 numération
décimale
Auriculaire de la main droite levé 2^0 1
Annulaire = 2^1 + 2
Majeur = 2^2 + 4
Index = 2^3 + 8
Pouce = 2^4 + 16
Pouce de la main gauche levé 2^5 + 32
Index = 2^6 + 64
Majeur = 2^7 + 128
Annulaire = 2^8 + 256
Auriculaire = 2^9 + 512
-------
Somme =1 023
(Pour mémoire 2^10 =1 024)
 
Ce qui confirme la formule
2^10-1=1 024-1
=1 023
On remarque qu'avec 10 doigts on peut prendre en compte les 10 premières puissances de 2 s'échelonnant de 2^0 à 2^9 c'est-à-dire la somme des 10 premières puissances de 2].
 
====Représentation des entiers négatifs====
 
Pour compléter la représentation des entiers, il faut pouvoir écrire des entiers négatifs. On ajoute pour cela à la représentation un bit de signe, placé en tête. Un bit de signe nul indique une valeur positive, un bit de signe positionné à un une valeur négative. Cette règle permet de rester cohérent avec le système de représentation des entiers positifs : il suffit d'ajouter un 0 en tête de chaque valeur.
 
=====Complément à un=====
 
Ce codage, fort simple, consiste à inverser la valeur de chaque bit composant une valeur binaire.
 
Par exemple, pour obtenir -5 :
 
0101 valeur décimale 5
1010 complément à un
 
Le souci avec un tel système est qu'il y a toujours deux représentations de la valeur 0 pour un nombre de bit donné.
 
''voir article détaillé : [[complément à un]]''
 
=====Complément à deux=====
 
Afin de palier ce défaut, on a introduit la représentation par complément à deux. Celle-ci consiste à réaliser un complément à un de la valeur, puis d'ajouter 1 au résultat.
 
Par exemple pour obtenir -5:
 
0101 codage de 5 en binaire
1010 complément à un
1011 on ajoute 1 : représentation de -5 en complément à deux
 
Ce codage à l'avantage de ne pas nécessiter de différenciation spéciale des nombres positifs et négatifs, et évite en particulier le problème d'ordinateurs anciens ([[Control Data]] 6600) qui avaient un « +0 » et un « -0 » dont il fallait faire comprendre aux circuits de tests que c'était le même nombre ! Voici une addition de -5 et +7 réalisée en complément à deux sur 4 bits :
 
-5 1011
+7 0111
__ ____
2 (1) 0010 (on 'ignore' la retenue)
 
Avec n bits, ce système permet de représenter les nombres entre -2<sup>n-1</sup> et 2<sup>n-1</sup>-1.
 
''voir article détaillé : [[Complément à deux]]''
 
===Code Gray ou binaire réfléchi===