Outil pour décoder/encoder en code BCD (binary coded decimal, DBC) des nombres entiers sur 4 bits, surtout en électronique.
Code BCD (Binary Coded Decimal) - dCode
Catégorie(s) : Electronique
dCode est gratuit et ses outils sont une aide précieuse dans les jeux, les maths, les énigmes, les géocaches, et les problèmes à résoudre au quotidien !
Une suggestion ? un problème ? une idée ? Écrire à dCode !
Le code BCD (pour binary coded decimal) ou DBC (décimal codé en binaire) est un système d'encodage utilisé en électronique et en informatique pour stocker des nombres décimaux en encodant leurs chiffres sur 4 bits (0 ou 1).
Le code BCD (binary coded decimal) ou DCB (décimal codé binaire) consiste à remplacer directement les chiffres 0, 1, 2, …, 9 par leurs valeurs en binaire (sur 4 bits) :
0 | 0000 |
1 | 0001 |
2 | 0010 |
3 | 0011 |
4 | 0100 |
5 | 0101 |
6 | 0110 |
7 | 0111 |
8 | 1000 |
9 | 1001 |
Exemple : Coder 123, c'est remplacer 1 par 0001, 2 par 0010 et 3 par 0011, donc 123 se code 0001 0010 0011 en BCD
En informatique, le stockage se fait généralement sur 8 bits, et stocker du BCD 4 bits sur 1 octet (8 bits) se fait en complétant avec des 0 ou des 1 (recommandé) au début (stockage appelé BCD étendu/extended, utilisé notamment par EBCDIC)
Exemple : Le stockage de 123 en BCD étendu est 11110001 11110010 11110011 (complété avec 1111 au début de l'octet)
Pour ne pas perdre de place, il existe le code BCD condensé (packed BCD) qui stocke 2 chiffres de 4 bits sur un octet de 8 bits. En plus, le BCD condensé utilise les 6 combinaisons de 4 bits restantes non utilisées (A,B,C,D,E,F en hexadécimal) pour coder les signes + et -
+ | 1010 | A |
- | 1011 | B |
+ | 1100 | C |
- | 1101 | D |
+ | 1110 | E |
(non signé) | 1111 | F |
Exemple : Le stockage de 123 en packed BCD est 00010010 00111100 (complété avec + 1100 à la fin si le nombre de chiffres est impair)
Il y a plusieurs façons de coder + et - car plusieurs variantes du BCD ont été proposées par les fabricants d'ordinateurs comme IBM ou Burroughs.
La conversion depuis BCD remplace les groupes de 4 bits (code BCD condensé, le plus courant) par le chiffre décimal correspondant
Exemple : 0001 0010 0011 se décode 1,2,3
Si le code est le BCD étendu, les 4 premiers bits binaires de chaque octet peuvent être ignorés.
Le code BCD est identique au code binaire pour le codage des chiffres entre 0 et 9. Au delà, dès qu'il s'agit d'encoder des nombres, ils diffèrent.
Exemple : 10 se code 00010000 en BCD et 00001010 en binaire.
Le message a un nombre de bit multiple de 4.
Les groupes 1010,1011,1100,1101,1110 sont minoritaires et 1111 quasi inexistants (sauf BCD étendu).
Certains systèmes utilisent 1100 pour + et 1101 pour -
Exemple : -5 s'écrit alors 1101 0101
Pour écrire/convertir un nombre non entier (flottant) il existe différentes approches.
La méthode la plus répandue est d'utiliser les nombre à virgule fixe où la position du point est fixée a priori.
Exemple : Il est décidé que les nombres sont stockés avec 2 chiffres après la virgule, alors une valeur BCD 123 se lira alors 1.23
Une autre méthode est utilisée sur certains systèmes qui se servent d'une des valeurs non chiffres (comme 1100,1101 ou 1110) pour stocker la position du point.
Le BCD est très utilisé en électronique pour le stockage ou l'affichage de valeur numérique. La conversion étant facile, ne nécessitant pas de processeur et se rapprochant des périphériques comme les afficheurs 7 segments.
Un autre exemple est le stockage des Dates dans le BIOS d'une carte mère en BCD, encore aujourd'hui.
Egalement le format DECIMAL des champs de certaines bases de données peut utiliser ce codage BCD.
Les valeurs non utilisées sont 1010, 1011, 1100, 1101, 1110, 1111
Les premiers usages du BCD datent d'une période entre 1950 et 1960
dCode se réserve la propriété du code source pour "Code BCD (Binary Coded Decimal)". Sauf code licence open source explicite (indiqué Creative Commons / gratuit), l'algorithme pour "Code BCD (Binary Coded Decimal)", l'applet ou snippet (convertisseur, solveur, chiffrement / déchiffrement, encodage / décodage, encryptage / décryptage, traducteur) ou les fonctions liées à "Code BCD (Binary Coded Decimal)" (calculer, convertir, résoudre, décrypter / encrypter, déchiffrer / chiffrer, décoder / encoder, traduire) codés en langage informatique (Python, Java, C#, PHP, Javascript, Matlab, etc.) ou les données, en téléchargement, script, ou les accès API à "Code BCD (Binary Coded Decimal)" ne sont pas publics, idem pour un usage hors ligne, PC, mobile, tablette, appli iPhone ou Android !
Rappel : dCode est gratuit.
Le copier-coller de la page "Code BCD (Binary Coded Decimal)" ou de ses résultats est autorisée (même pour un usage commercial) tant que vous créditez dCode !
L'exportation des résultats sous forme de fichier .csv ou .txt est gratuite en cliquant sur l'icone export
Citer comme source bibliographique :
Code BCD (Binary Coded Decimal) sur dCode.fr [site web en ligne], consulté le 21/11/2024,