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

Pierre Fauconnier

Convertir un nombre décimal en binaire avec Excel

Noter ce billet
par , 06/10/2021 à 08h00 (1387 Affichages)
Salut.

DECBIN(Valeur) convertit une valeur décimale en valeur binaire... DECBIN(145) = 10010001. DECBIN permet l'expression binaire d'une valeur négative, mais se comporte pour moi assez bizarrement. En effet, il est limité à 9 bits (10 pour un nombre négatif, le bit de poids fort étant à 1 et le nombre négatif étant exprimé en notation complément à 2).

Cette limitation entraîne dans les faits que la plage utilisable est -512 à +511... DECBIN(512) renvoie 0.

Et si on faisait sauter cette limite avec EXCEL 365?

Si DECBIN est limité à la plage [-512,511], DECHEX, lui, n'est pas limité, ou presque* => DECHEX(4256895412) = FDBB11B4. Et ça, c'est plutôt chouette, puisque chaque caractère hexadécimal tient sur 4 octets. Par exemple, 60043dec = 1110101010001011bin. Et 60043dec = EA8Bhex... Et si on écrit chaque lettre de valeur hexa en binaire, on a 1110 1010 1000 1011bin...

Et en Exel365, on a JOINDRE.TEXTE qui permet de concaténer des matrices. On a aussi LET, qui permet de déclarer des variables qui seront utilisées dans la formule.

Voilà dès lors une chouette formule: =LET(V;DECHEX(C1);JOINDRE.TEXTE("";VRAI;HEXBIN(STXT(V;LIGNE(INDIRECT("a1:a" & NBCAR(V)));1);4)))
Nom : 2021-10-05_193602.png
Affichages : 188
Taille : 3,2 Ko


Explications
  • DECHEX(C1) traduit la valeur de C1 en hexadécimal;
  • Grâce à LET, on stocke cette valeur dans la variable V;
  • LIGNE(INDIRECT("a1:a" & NBCAR(V))) va permettre de boucler sur le nombre de caractères de la valeur hexadécimale (la variable V calculée par LET en début de formule);
  • HEXBIN(STXT(V;LIGNE(INDIRECT("a1:a" & NBCAR(V)));1);4) va convertir chaque caractère hexa en binaire sur 4 bits en bouclant grâce à LIGNE(...);
  • JOINDRE.TEXTE("";VRAI;HEXBIN(STXT(V;LIGNE(INDIRECT("a1:a" & NBCAR(V)));1);4)) va concaténer les résultats de chaque boucle.



Et voila. On a fait sauter la limite...

Nom : 2021-10-05_194400.png
Affichages : 158
Taille : 5,3 Ko


* La plage des valeurs admises pour DECHEX est [-549 755 813 888,549 755 813 887]





.

Envoyer le billet « Convertir un nombre décimal en binaire avec Excel » dans le blog Viadeo Envoyer le billet « Convertir un nombre décimal en binaire avec Excel » dans le blog Twitter Envoyer le billet « Convertir un nombre décimal en binaire avec Excel » dans le blog Google Envoyer le billet « Convertir un nombre décimal en binaire avec Excel » dans le blog Facebook Envoyer le billet « Convertir un nombre décimal en binaire avec Excel » dans le blog Digg Envoyer le billet « Convertir un nombre décimal en binaire avec Excel » dans le blog Delicious Envoyer le billet « Convertir un nombre décimal en binaire avec Excel » dans le blog MySpace Envoyer le billet « Convertir un nombre décimal en binaire avec Excel » dans le blog Yahoo

Commentaires