Soustraction en BCD ?
wremacle
-
robinson -
robinson -
Bonjour,
J'aimerai savoir comment faire une soutraction en BCD ?
A vrai dire je ne connais pas grand chose du BCD, si vous avez des sites n'hésitez pas !
Je sais qu'il faut faire +6, mais c'est un peu près tout :/
Merci de vos réponses !
J'aimerai savoir comment faire une soutraction en BCD ?
A vrai dire je ne connais pas grand chose du BCD, si vous avez des sites n'hésitez pas !
Je sais qu'il faut faire +6, mais c'est un peu près tout :/
Merci de vos réponses !
2 réponses
-
BCD = Binary coded decimal.
Tu codes par groupes de 4 bits un nombre decimal (donc de 0 à 9) et non un nombre hexadecimal (0 à 15 ie 0 à F)0000 -> 0 0001 -> 1 0010 -> 2 0011 -> 3 0100 -> 4 0101 -> 5 0110 -> 6 0111 -> 7 1000 -> 8 1001 -> 9 1010 -> A en hexa mais pas de sens en bcd 1011 -> B en hexa mais pas de sens en bcd 1100 -> C en hexa mais pas de sens en bcd 1101 -> D en hexa mais pas de sens en bcd 1110 -> E en hexa mais pas de sens en bcd 1111 -> F en hexa mais pas de sens en bcd
En fait 15 c'est 10+5 donc ca devient en BCD (deux chiffres donc deux fois 4 bits) :0001 0101
Le fameux 6 doit servir à assurer les 6 valeurs qui n'ont pas de sens en bcd pour faire directement une soustraction bit à bit, mais il faudrait vérifier pour en être sûr.
Pour plus de précisison google est ton ami
Bonne chance-
Merci de votre réponse!
En gros si je veux faire une addition de ce type:
26+45=71 0010 0110 0100 0101 ------------ 0110 1011 0110 ----------- 0111 0001 => 71
Jusque la je comprend parfaitement!
Lorsque le résultat est > 9 on ajoute 6.
Mais pour une soustraction comment faire ?
45-26=19 0100 0101 0010 0110 ------------ 0001 1111 - 0110 ----------- 0001 1001 => 19
Donc ici encore une fois lorsque le résultat est > 9 on n'additionne pas mais on soustrait 6 du résultats, et apparemment ca marche !
Merci de ton aide je pense avoir compris, si il y à une erreur n'hésitez pas! -
-
-
Salut,
L'ajout ou la suppression de 6 ne sert que si il y a propagation de la retenue
sur un groupe de 4 bits (supérieur à 10)
exemple pour l'addition1+1 = 2 0001 + 0001 ------- 0010 -> pas besoin de 6 1+9 = 10 0001 + 1001 ------ 1010 > 10 donc + 6 + 0110 ------ 1 0000 = 10 en BCD