|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : octobre 2011 Messages : 1 ![]() |
Bonjour,
j'ai un problème : je veux un programme en Pascal qui convertit un nombre décimal vers le DCB (décimal codé en binaire) sur 4 bits. J'ai réfléchi mais je n'ai pas pu. |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() Roland ChastainInscription : décembre 2011 Messages : 694 ![]() |
Bonjour !
Tu peux regarder cette discussion. Sauf erreur de ma part, le plus grand nombre représentable avec 4 chiffres binaires est 15 (1111). La méthode de conversion consiste à rechercher les puissances de deux contenues dans le nombre.
__________________
L'Art est long et le Temps est court. |
|
|
00
|
|
|
#3 |
![]() ![]() Inscription : avril 2002 Messages : 2 275 ![]() |
Tu peux jeter un oeil ici aussi:
http://fr.wikipedia.org/wiki/Binary_coded_decimal Je trouve néanmoins ce codage extrêmement débile, car on ne stocke que 100 nombres dans 8 bits, alors qu'on peut en mettre "naturellement" 256, d'où une énorme perte de place. Et ca ne facilite pas forcément les algorithmes et la lecture/écriture de données... Mais comme cette méthode est encore enseignée......
__________________
M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal |
|
|
10
|
|
|
#4 |
![]() ![]() ![]() |
Bonjour,
Pour décomposer un nombre entier en chiffres décimaux, il faut le diviser successivement par 10 et récupérer les restes successifs dans un octet. Forcément, les 4 bits de poids faible de cet octet contiendront le chiffre extrait. S'il s'agit de conversion en packed BCD (2 chiffres par octet), il faut appliquer un décalage de 4 bits pour un chiffre sur deux (les puissances impaires de 10). Exemple : la conversion de 94 en packed BCD (à généraliser pour des nombres supérieurs à 99
Pour terminer : on traduit le pseudocode en Pascal.
__________________
Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell] |
|
10
|
|
|
#5 | |||
|
Membre Expert
![]() ![]() Roland ChastainInscription : décembre 2011 Messages : 694 ![]() |
N'est-ce pas plutôt : le résultat est décalé de 4 bits et le reste est additionné au résultat ?
Autrement, voici une procédure qui peut aider à comprendre et à mettre en œuvre la solution expliquée par Alcatîz. Code :
Citation:
__________________
L'Art est long et le Temps est court. |
|||
|
|
00
|
|
|
#6 |
![]() ![]() ![]() |
Non, puisque les digits sont déterminés de la droite vers la gauche : le premier digit trouvé est stocké dans les 4 bits de poids faible et le second dans les 4 bits de poids fort.
__________________
Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell] |
|
00
|
|
|
#7 | |||
|
Membre Expert
![]() ![]() Roland ChastainInscription : décembre 2011 Messages : 694 ![]() |
Citation:
L'auteur de la discussion ne s'étant plus manifesté, je me permets de poster ce que j'ai fait : Code :
Ce serait intéressant de refaire avec FlashPascal cette animation.
__________________
L'Art est long et le Temps est court. |
|||
|
|
10
|
Copyright © 2000-2013 - www.developpez.com