Amstrad Plus Index du Forum

Amstrad Plus
Découverte de la gamme Old et Plus des Cpc d'Amstrad.

 FAQFAQ   RechercherRechercher   MembresMembres   GroupesGroupes   S’enregistrerS’enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Convertir une valeur hexa 16 Bits en valeur décimale.

 
Poster un nouveau sujet   Répondre au sujet    Amstrad Plus Index du Forum -> Bienvenue sur ce forum -> Programmation
Sujet précédent :: Sujet suivant  
Auteur Message
Ast
Administrateur

Hors ligne

Inscrit le: 05 Sep 2014
Messages: 2 702
Masculin
Point(s): 92
Moyenne de points: 0,03

MessagePosté le: Mar 27 Mar - 16:17 (2018)    Sujet du message: Convertir une valeur hexa 16 Bits en valeur décimale. Répondre en citant

Bonjour,

Ne tournons pas autour du pot, voilà ce que je cherche exactement.
Je veux partir de la valeur hexa, 24 bits, aHL=#020000 16 bits contenue dans HL et obtenir en sortie la valeur décimale 131072.
Qui aurait une idée à me faire parvenir ?

Merci d'avance.
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Dernière édition par Ast le Ven 30 Mar - 13:54 (2018); édité 4 fois
Revenir en haut
Publicité






MessagePosté le: Mar 27 Mar - 16:17 (2018)    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
roudoudou


Hors ligne

Inscrit le: 14 Juil 2016
Messages: 390
Localisation: LYON
Masculin
Point(s): 6
Moyenne de points: 0,02

MessagePosté le: Mar 27 Mar - 18:18 (2018)    Sujet du message: Convertir une valeur hexa 16 Bits en valeur décimale. Répondre en citant

Bah tu fais comme en 16 bits avec tes soustractions, mais en 24 bits avec propagation de retenue Smile

Revenir en haut
cmp


Hors ligne

Inscrit le: 08 Sep 2014
Messages: 183
Localisation: nord
Masculin Balance (23sep-22oct)
Point(s): 5
Moyenne de points: 0,03

MessagePosté le: Jeu 29 Mar - 08:52 (2018)    Sujet du message: Convertir une valeur hexa 16 Bits en valeur décimale. Répondre en citant

J'ai ptet une idée Smile


XX XXXX XXXX


tu gère la partie de A


1 2 4 8 16 32 64 128 256 512 etc
sur la valeur de A, c'est donc > 255
suffit de tester chaque bit de AH et de lui ajouter le poids correspondant


exemple bit 0 à 1 de A correpondant à 256 donc tu mets 256 en RAM


puis tu prends le bit 1 de A (à 1 par exemple), et tu sais que ca correspond à 512


donc ensuite tu fais 256+512


etc
tout dépend du max de ton A.




après en optimisant, tu sais que tu peux décaler à gauche par exemple .






bien sur t'es obligé d'enregistrer le résultat en mémoire et d'ajouter à chaque fois en tenant compte du dépassement (comme expliqué par roudoudou).
_________________
CMP from impact cpc


Revenir en haut
Skype
roudoudou


Hors ligne

Inscrit le: 14 Juil 2016
Messages: 390
Localisation: LYON
Masculin
Point(s): 6
Moyenne de points: 0,02

MessagePosté le: Jeu 29 Mar - 13:29 (2018)    Sujet du message: Convertir une valeur hexa 16 Bits en valeur décimale. Répondre en citant

cmp a écrit:
J'ai ptet une idée Smile


A quel moment on fait la relation avec un affichage décimal? Razz


Revenir en haut
roudoudou


Hors ligne

Inscrit le: 14 Juil 2016
Messages: 390
Localisation: LYON
Masculin
Point(s): 6
Moyenne de points: 0,02

MessagePosté le: Jeu 29 Mar - 18:14 (2018)    Sujet du message: Convertir une valeur hexa 16 Bits en valeur décimale. Répondre en citant

Bon, si c'est toujours d'actualité, même méthode que celle dont on avait parlé pour une valeur 16 bits, sauf qu'il faut partir de 10.000.000

A : HL est le nombre 24 bits

B : DE vaut 1 million B=#98 DE=#9680

Code:
or a
ld c,0
combien
sbc hl,de
sbc b
inc c
jr nc,combien
; c'est trop, on remet comme avant
add hl,de
adc b
; c=nombre de fois 10.000.000, tu ajoutes la valeur ascii '0' et tu affiches

et ainsi de suite avec les autres valeurs, le million, etc.


Revenir en haut
Ast
Administrateur

Hors ligne

Inscrit le: 05 Sep 2014
Messages: 2 702
Masculin
Point(s): 92
Moyenne de points: 0,03

MessagePosté le: Jeu 29 Mar - 22:27 (2018)    Sujet du message: Convertir une valeur hexa 16 Bits en valeur décimale. Répondre en citant

Pour ma part, voici la méthode que j'ai retenue et utilisée :

Code:
;
; Hexa to Dec 24 bits !
; hl=entrée...
;
              org #a000
;
aze         ld hl,#ffff ; 131071
;
              ld bc,-100000
              call hextodec
              ld bc,-10000
              call hextodec
              ld bc,-1000
              call hextodec
              ld bc,-100
              call hextodec
              ld c,-10
              call hextodec
              ld c,-1
              call hextodec
              ld hl,(aze+1)
              dec hl
              ld (aze+1),hl
              ret
hextodec
              ld a,'0'-1
compta    inc a
              add hl,bc
              jr c,compta
              sbc hl,bc
              jp #bb5a
;



_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Revenir en haut
roudoudou


Hors ligne

Inscrit le: 14 Juil 2016
Messages: 390
Localisation: LYON
Masculin
Point(s): 6
Moyenne de points: 0,02

MessagePosté le: Jeu 29 Mar - 22:46 (2018)    Sujet du message: Convertir une valeur hexa 16 Bits en valeur décimale. Répondre en citant

Et ton BC, à 100000 ça marche encore?
24 bits ça tient dans HL tout court? Mr. Green


Revenir en haut
Ast
Administrateur

Hors ligne

Inscrit le: 05 Sep 2014
Messages: 2 702
Masculin
Point(s): 92
Moyenne de points: 0,03

MessagePosté le: Jeu 29 Mar - 22:50 (2018)    Sujet du message: Convertir une valeur hexa 16 Bits en valeur décimale. Répondre en citant

non 16 bits en entrée... 
Pour -100000, la valeur hexa c'est #7960!  Cool
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Revenir en haut
roudoudou


Hors ligne

Inscrit le: 14 Juil 2016
Messages: 390
Localisation: LYON
Masculin
Point(s): 6
Moyenne de points: 0,02

MessagePosté le: Ven 30 Mar - 13:26 (2018)    Sujet du message: Convertir une valeur hexa 16 Bits en valeur décimale. Répondre en citant

Veux-tu bien nous expliquer le rapport avec le titre? On y comprend rien là...

Revenir en haut
Ast
Administrateur

Hors ligne

Inscrit le: 05 Sep 2014
Messages: 2 702
Masculin
Point(s): 92
Moyenne de points: 0,03

MessagePosté le: Ven 30 Mar - 13:47 (2018)    Sujet du message: Convertir une valeur hexa 16 Bits en valeur décimale. Répondre en citant

Tu as 100% raison.
Propose un titre, je change!
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Revenir en haut
Ast
Administrateur

Hors ligne

Inscrit le: 05 Sep 2014
Messages: 2 702
Masculin
Point(s): 92
Moyenne de points: 0,03

MessagePosté le: Ven 30 Mar - 13:49 (2018)    Sujet du message: Convertir une valeur hexa 16 Bits en valeur décimale. Répondre en citant

Du coup j'ai changé direct!!!
Ah ah ah !
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Revenir en haut
TOUKO


Hors ligne

Inscrit le: 06 Sep 2017
Messages: 36
Masculin
Point(s): 0
Moyenne de points: 0,00

MessagePosté le: Mar 10 Avr - 10:00 (2018)    Sujet du message: Convertir une valeur hexa 16 Bits en valeur décimale. Répondre en citant

Y'a pas de mode BCD sur votre CPU ??? 
Après tout dépend pourquoi la conversion(score ou autre) .


Revenir en haut
Ast
Administrateur

Hors ligne

Inscrit le: 05 Sep 2014
Messages: 2 702
Masculin
Point(s): 92
Moyenne de points: 0,03

MessagePosté le: Mar 10 Avr - 10:04 (2018)    Sujet du message: Convertir une valeur hexa 16 Bits en valeur décimale. Répondre en citant

TOUKO a écrit:
Y'a pas de mode BCD sur votre CPU ??? 
Après tout dépend pourquoi la conversion(score ou autre) .

Bien sûr que si!
C'est une partie qui me sert à afficher la mémoire restante dans le directory de la xMass.
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Revenir en haut
TOUKO


Hors ligne

Inscrit le: 06 Sep 2017
Messages: 36
Masculin
Point(s): 0
Moyenne de points: 0,00

MessagePosté le: Mar 10 Avr - 10:59 (2018)    Sujet du message: Convertir une valeur hexa 16 Bits en valeur décimale. Répondre en citant

Ah ok je vois,dans ce cas le BCD n'aide pas vraiment .
Quoi que !!, l'idéal serrait de juste convertir l'entrée(16 bits) en décimal, et utiliser le BCD pour mettre à jour la valeur 24 bits .


Sinon j'ai trouvé ça :
super fast binary decimal routine


Revenir en haut
Ast
Administrateur

Hors ligne

Inscrit le: 05 Sep 2014
Messages: 2 702
Masculin
Point(s): 92
Moyenne de points: 0,03

MessagePosté le: Mar 10 Avr - 12:27 (2018)    Sujet du message: Convertir une valeur hexa 16 Bits en valeur décimale. Répondre en citant

Merci pour ton lien !!!
_________________
Ast/iMP4CT

"Par le pouvoir du crâne ancestral...."


Revenir en haut
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 12:51 (2018)    Sujet du message: Convertir une valeur hexa 16 Bits en valeur décimale.

Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Amstrad Plus Index du Forum -> Bienvenue sur ce forum -> Programmation Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1

 
Sauter vers:  

Index | Panneau d’administration | Creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com