Comment convertir une chaine de caractere en nombre

Signaler
Messages postés
6
Date d'inscription
lundi 18 août 2003
Statut
Membre
Dernière intervention
29 septembre 2003
-
makovski
Messages postés
1
Date d'inscription
samedi 10 février 2007
Statut
Membre
Dernière intervention
17 décembre 2007
-
Voila,

comment une chaine de caractere "12" par exemple
peut elle etre convertie en nombre 12.

merci a tous

davidV :-p

5 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
16
exemple avec passage *chaine sur la pile:

bnatoi PROC pszint:DWORD
mov ecx, [esp+4]
xor eax, eax
push ebx
xor edx, edx
xor ebx, ebx
cmp byte ptr[ecx], '-'
jne short nbrLoop
inc ecx
or edx, -1
nbrLoop:
mov bl, [ecx]
cmp bl, '0'
jb short nbrStop
cmp bl, '9'
ja short nbrStop
lea eax, [eax+eax*4] ; eax = eax * 5
sub bl, '0'
add eax, eax
inc ecx
add eax, ebx
jmp short nbrLoop
nbrStop:
add eax, edx
pop ebx
xor eax, edx
ret 4
bnatoi ENDP
BruNews, ciao...
Messages postés
500
Date d'inscription
mardi 16 avril 2002
Statut
Membre
Dernière intervention
2 août 2004

Bonjour,

Tu peux utiliser la fonction atoi de la librairie standard C :

http://www.hh.se/stud/d98rolb/ansi/atoi .html

Dean - http://charloweb.ipfixe.net
Messages postés
540
Date d'inscription
dimanche 23 mars 2003
Statut
Membre
Dernière intervention
5 octobre 2007
1
chine db "12", 0

mov si, offset chaine
xor bx, bx
boucle:
lodsb
mov ax, 10
mul bx
xchg bx, ax
or al, al
jz fin
sub al, '0'
add bx,ax
fin:

Le résultat est dans bx

Core Breaker :)
Messages postés
4
Date d'inscription
mercredi 7 avril 2004
Statut
Membre
Dernière intervention
21 juillet 2005

Juste pour info que doit on mettre dans bx pour faire fonctionner tout ça??
:question)
Messages postés
1
Date d'inscription
samedi 10 février 2007
Statut
Membre
Dernière intervention
17 décembre 2007

où est la référence à "boucle"?
et est-ce correct de donner un caractère à sub, et non une valeur?