Pour les fans de nandgame: veuillez également essayer DPD en décimal dans les portes logiques !
Contexte
La décimale dense (DPD) est un moyen de stocker efficacement les chiffres décimaux en binaire. Il stocke trois chiffres décimaux (000 à 999) sur 10 bits, ce qui est beaucoup plus efficace que BCD naïf (qui stocke un chiffre sur 4 bits).
Notations
- Les lettres minuscules
a
ài
sont les bits copiés dans la représentation décimale. 0
et1
sont les bits exacts dans les modèles de bits d'entrée ou de sortie.x
les bits sont ignorés dans la conversion.
Table de conversion
Ce qui suit est la table de conversion de 10 bits de DPD à trois chiffres décimaux. Chaque chiffre décimal est représenté en binaire 4 bits (BCD). Les deux côtés sont écrits de gauche à droite du chiffre le plus significatif au moins.
Bits => Decimal (Digit range)
a b c d e f 0 g h i => 0abc 0def 0ghi (0-7) (0-7) (0-7)
a b c d e f 1 0 0 i => 0abc 0def 100i (0–7) (0–7) (8–9)
a b c g h f 1 0 1 i => 0abc 100f 0ghi (0–7) (8–9) (0–7)
g h c d e f 1 1 0 i => 100c 0def 0ghi (8–9) (0–7) (0–7)
g h c 0 0 f 1 1 1 i => 100c 100f 0ghi (8–9) (8–9) (0–7)
d e c 0 1 f 1 1 1 i => 100c 0def 100i (8–9) (0–7) (8–9)
a b c 1 0 f 1 1 1 i => 0abc 100f 100i (0–7) (8–9) (8–9)
x x c 1 1 f 1 1 1 i => 100c 100f 100i (8–9) (8–9) (8–9)
Tâche
Convertissez 10 bits de DPD en 3 chiffres décimaux.
Cas de test
DPD Decimal
0000000101 005
0001100011 063
0001111001 079
0000011010 090
0001011110 098
1010111010 592
0011001101 941
1100111111 879
1110001110 986
0011111111 999
1111111111 999 * Output is same regardless of the `x` bits
Contribution
Le format d'entrée par défaut est une liste de 10 bits. Les bits doivent suivre l'ordre exact ci-dessus, ou l'inverse. Vous pouvez choisir d'utiliser une chaîne équivalente ou une représentation entière à la place. Contrairement à mes autres défis, la réorganisation ou l'utilisation de structures imbriquées n'est pas autorisée .
Pour l'entrée [1, 1, 0, 0, 0, 1, 0, 1, 0, 0]
, les formats suivants sont autorisés:
- Liste de bits:
[1, 1, 0, 0, 0, 1, 0, 1, 0, 0]
- Chaîne:
"1100010100"
- Entier binaire:
788
ou0b1100010100
- Entier décimal:
1100010100
- Inversé:
[0, 0, 1, 0, 1, 0, 0, 0, 1, 1]
et inversé dans tous les autres formats ci-dessus
Les formats suivants ne sont PAS autorisés:
- Réorganisation arbitraire des bits:
[0, 0, 0, 0, 0, 1, 1, 1, 0, 1]
- Structures imbriquées:
[[1, 1, 0], [0, 0, 1], [0, 1, 0, 0]]
ou[0b110, 0b001, 0b0100]
Sortie
Le format de sortie par défaut est une liste de 3 chiffres décimaux. Chaque chiffre doit être représenté de 0 à 9, soit un entier soit un caractère. Comme en entrée, vous pouvez choisir une représentation sous forme de chaîne ou d'entier. Si vous choisissez une représentation entière, les zéros non significatifs peuvent être omis.
Critère de notation et de victoire
Les règles de code-golf standard s'appliquent. Le programme ou la fonction la plus courte en octets pour chaque langue gagne.