Vous avez presque certainement entendu parler de nombres négatifs. Si vous avez même été un peu exposé au monde de l'informatique et de la programmation informatique, le concept de nombres binaires n'est pas tout à fait étranger. Mais à moins que vous n'ayez exploré le monde de la programmation personnellement, vous n'avez probablement jamais travaillé de manière substantielle avec des nombres binaires.
Parce que les ordinateurs ne peuvent pas « penser » ou « décider » par eux-mêmes mais peuvent suivre des instructions ordonnées avec une précision sans faille, les mathématiciens sont venus il y a longtemps avec un moyen pour les ordinateurs (ou les humains suffisamment patients) de faire des additions, des soustractions et d'autres opérations mathématiques en utilisant uniquement les chiffres 0 et 1.
Mais existe-t-il un moyen de combiner ces deux idées pour produire des nombres négatifs? Est-ce aussi simple que de dire à une machine de coller une petite barre horizontale devant un nombre existant à la plume et sur du papier, ou le facteur « bits et octets » rend-il les choses plus compliquées ?
Que sont les nombres binaires ?
Les ordinateurs ont une énorme puissance de traitement, et même un vieux taré peut effectuer des calculs à une vitesse qui semblerait incompréhensible, même pour l'être humain le plus doué en arithmétique. Mais ce ne sont pas des cerveaux, et la seule façon de les faire gérer des informations complexes est de reléguer tout ce qui est possible à l'un des deux états, par exemple, ON ou OFF.
Dans "computer-ese", un seul 0 ou 1 est appelé un bit. Les groupes de ceux-ci comprennent les grignoter (4 bits), le bien connu octet (8), le mot (1) et le mot long (32).
Les nombres décimaux que vous voyez généralement, comme 492 et 35, sont en "base 10", car ils incluent 10 symboles progressifs (les chiffres 0 à 9) qui "roulez sur" à la prochaine place vers la gauche - la prochaine "puissance de 10". Les nombres binaires, à la place, n'incluent que deux symboles (les chiffres 0 et 1) et sont "base-2." Chaque mouvement vers la gauche à partir de la fin du nombre est une puissance croissante de deux: les chiffres de fin représentent 1, les 2 suivants, puis 4, 8, 16 et bientôt.
- Un nombre décimal est n'importe quel nombre du système base 10, pas nécessairement un nombre qui inclut un point décimal.
Exemples de nombres binaires
Le binaire "nybble" 0101 a des 1 à la 1 place et à la 4 place, et des 0 à la 2 et à la 8 place. Son équivalent décimal est donc 1 + 4 = 5.
De même, l'octet 1001 1100 équivaut à 128 + 16 + 8 + 4 (28 + 25 + 24 + 23) = 156.
le complément d'un nombre binaire n'est que le nombre avec ses chiffres « intervertis ». Par exemple, le complément de 1001 1100 = 0110 0011.
Conversion de nombres négatifs en binaire
La façon dont vous convertissez un nombre décimal négatif en un nombre binaire est probablement assez différente des autres conversions numériques vous avez effectué parce que votre esprit, malgré toute sa paresse comparative, est beaucoup plus flexible à bien des égards que n'importe quel autre CPU. Cependant, il s'agit d'un processus simple.
La conversion se fait à l'aide d'un binaire complément à deux, ce qui oblige le programmeur à demander à l'ordinateur d'interpréter tout nombre binaire commençant par 1 comme négatif. Le programme alors construit le nombre positif correspondant en binaire, prend son complément et en ajoute un.
Par exemple, étant donné le nombre -47, l'ordinateur créerait le nombre binaire pour +47 :
0001 1111
Le complément de ceci est :
1110 0000
L'ajout d'un à cela donne :
1110 0001
Notez que l'ordinateur a « signé » ces nombres pour traiter un premier 1 comme négatif et traiter les résultats différemment de la simple addition des puissances de 2 occupées par le symbole 1.