IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Voir le flux RSS

Pierre Fauconnier

Comment écrire un nombre négatif en binaire avec Excel

Noter ce billet
par , 07/10/2021 à 14h14 (807 Affichages)
Salut.

Dans ce billet de blog, je vous parlais de DECBIN(Nombre) qui convertit un décimal en binaire. Cette fonction est limitée à la plage de valeurs [-512 ; 511]. Elle utilise 9 bits pour les valeurs positives et passe le 10ième bit à 1 pour les valeurs négatives. Elle utilise la notation complément à 2 pour déterminer la valeur négative.

Nom : 2021-10-07_131518.png
Affichages : 574
Taille : 9,6 Ko


- La notation complément à 2? C'est quoi ce truc, Pierre?
- Ok, j'y reviens bientôt.

Cette fonction ne permet pas d'utiliser moins de bits pour la valeur négative, car c'est justement le fait qu'il y a 10 bits qui indique que la valeur est négative. En effet, si j'utilise la fonction inverse BINDEC pour transformer un binaire en décimal, je pourrais envoyer un binaire positif sur 9 bits, mais si je veux envoyer un négatif, je devrai utiliser le 10ième bit (celui de poids fort), à 1.

Nom : 2021-10-07_132513.png
Affichages : 74
Taille : 8,8 Ko

- Ben... Moi, je croyais que pour rendre un nombre négatif, il suffisait de mettre le bit de gauche à 1... 121 => 01111001 => -121 => 11111001
- Mais non, si tu additionnes 121 et -121, tu obtiens 0, ok?
- Heu... Oui, bien sûr...
- Si tu additionnes 01111001 et 11111001, tu n'obtiens pas 0, tu obtiens 101110010, soit 370 sur 9 bits, ou 114 sur 8 bits

Nom : 2021-10-07_135911.png
Affichages : 73
Taille : 3,3 Ko


- Ok, Pierre, t'es vraiment gentil, t'as sûrement raison, mais en fait, moi, je voudrais les nombres signés sur 8 bits, sur un octet. Pourquoi Excel l'a fait sur 10?

Pouquoi Excel l'a fait sur 10 octets, je n'en sais trop rien. Il y a peut-être une raison scientifique, mais je ne la connais pas. Perso, j'aurais apprécié que, sur 8, 10 ou x bits, on ait un second paramètre optionnel qui précise qu'on passe un nombre négatif en binaire, ç'eut été à mon sens plus simple => un truc du genre BINDEC(Valeur;[Négatif]) => =BINDEC("10000111";VRAI) =>-121 => =BINDEC("10000111") = 135.

- Dis, Pierre, c'est marrant ton truc...
- Ah oui? Quoi donc?
- Ben, 121 + 135, ça fait 256
- Ben oui, c'est lo-gi-que...
- Oui, enfin, logique ou pas, moi, je voudrais bien -121 sur 8 bits, sur un octet, et pas sur 10 bits. Ca rime à rien, leur truc...
- Ben, si tu veux -121 sur un octet, soit 8 bits, laisse tomber les deux premiers 1. Fastoche!
- ???
- Ben oui, c'est lo-gi-que...

Nom : 2021-10-07_133625.png
Affichages : 69
Taille : 3,0 Ko

- Ah oui, ça marche, mais comment ça se fait?
- C'est parce que c'est lo-gi-que...
- Grrrrrrrrrr
- Ok Je me calme... Pour comprendre pourquoi c'est logique, il faut comprendre ce que signifie la notation à 2.

Reprenons nos valeurs sur 8 bits et voyons comment on rend un binaire négatif. On va:
  • inverser les 7 bits de poids faible;
  • ajouter 1 au résultat;
  • mettre le bit de poids fort à 1.


Nom : 2021-10-07_135227.png
Affichages : 69
Taille : 5,2 Ko

Comme cela, lorsque tu additionnes 121 et -121, tu obtiens 0 sur 8 bits et... 256 sur 9 bits... Et de même, si tu additionnes 95 et -95, tu obtiens 0 sur 8 bits, ou 256 sur 9 bits... Et 256, ça correspond à 121 + 135 (valeur non signée de -121 en binaire). Et 256, ça correspond aussi à 95 + 161 (valeur non signée de -95 en binaire)... Et donc, pour trouver la valeur binaire d'un nombre négatif sur 1 octet, tu peux donc retrancher ce nombre de 256 puis traduire le résultat en binaire...

Nom : 2021-10-07_140919.png
Affichages : 73
Taille : 6,1 Ko



Ok... Merci m'sieur... J'vais m'prendre une triple Karmeliet...

Envoyer le billet « Comment écrire un nombre négatif en binaire avec Excel » dans le blog Viadeo Envoyer le billet « Comment écrire un nombre négatif en binaire avec Excel » dans le blog Twitter Envoyer le billet « Comment écrire un nombre négatif en binaire avec Excel » dans le blog Google Envoyer le billet « Comment écrire un nombre négatif en binaire avec Excel » dans le blog Facebook Envoyer le billet « Comment écrire un nombre négatif en binaire avec Excel » dans le blog Digg Envoyer le billet « Comment écrire un nombre négatif en binaire avec Excel » dans le blog Delicious Envoyer le billet « Comment écrire un nombre négatif en binaire avec Excel » dans le blog MySpace Envoyer le billet « Comment écrire un nombre négatif en binaire avec Excel » dans le blog Yahoo

Mis à jour 07/10/2021 à 16h14 par Pierre Fauconnier

Catégories
Excel , MS Office , Trucs & Astuces

Commentaires