Accueil > Forum > > > > Tronquer un nombre
Tronquer un nombre
lundi 6 septembre 2004 à 08:45:38 |
Tronquer un nombre

leclair2000
|
Bonjour! J'aimerais savoir comment on doit s'y prendre pour tronquer un nombre en assembleur? ex : 5.12345 -> 5.12 Merci d'avance
|
|
lundi 6 septembre 2004 à 09:16:39 |
Re : Tronquer un nombre

ToutEnMasm
|
Salut, une fois le nombre transformé en caracteres ascii , chercher le point ,compter le nombre de décimales voulues ,rajouter le zero de bout de chaine. ToutEnMasm
|
|
lundi 6 septembre 2004 à 23:47:17 |
Re : Tronquer un nombre

CoreBreaker
|
Si ton nombre est en virgule fixe dans un entier comme ceci: pour représenter le nombre 1235.12345 avec 5 chiffres après la virgule, il suffit de faire: num / 100000 * 100000 ou num - (num modulo 10000) ainsi: mov ebx, 100000 mov eax, [num] div eax, ebx mul ebx |
ou mov ebx, 100000 mov eax, [num] mov edx, 0 div ebx ; le résultat du modulo est dans edx mov eax, [num] sub eax, edx |
Si ton nombre est en bcd compacté ainsi: | num db 45h, 23h, 51h, 23h, 01h |
il suffit de placer des zéros ainsi mov word ptr [num], 0 and byte ptr [num+2], 0F0h |
Si maintenant tu utilise le fpu, ainsi num dd 1235.12345 res dd 0 |
Il suffit de faire ainsi: ; On modifie le mot de controle ; pour activer la troncature lors d'un FRNDINT fldcw word ptr [res] or byte ptr [res], 0Ch fstcw word ptr [res]
fld [num] frndint fstp [res]
| Core Breaker 
|
|
mardi 7 septembre 2004 à 09:57:42 |
Re : Tronquer un nombre

leclair2000
|
C'est cool,
Mais en fait, je me suis mal exprimé et je m'en excuse!
En fait, je dois trouver un algoritme faisable en assembleur pour convertir un nombre en un nombre à deux chiffres significatifs et j'ai vraiment aucune idée...
|
|
mardi 7 septembre 2004 à 11:43:42 |
Re : Tronquer un nombre

BruNews
|
multiplie par 100 frndint divise 100
ciao... BruNews, Admin CS, MVP VC++
|
|
mardi 7 septembre 2004 à 22:43:47 |
Re : Tronquer un nombre

CoreBreaker
|
Réponse acceptée !
Je suppose donc que tu veux dire que tu veux 2 chiffres significatifs après la virgule. Tu peux faire ta tronquature à 2 décimales en virgule fixe avec l'exemple que je t'ai donné, c'est à dire avec une précision de 5 décimales. Il suffit de reprendre l'exemple que je t'ai donné mais de changer le diviseur. En effet, l'exemple que j'ai donné est une troncature à l'unité, pour obtenir une troncature à 2 décimales avec un diviseur de 1000 (= 100000 / 100) mov ebx, 1000 mov eax, [num] mov edx, 0 div ebx ; le résultat du modulo est dans edx mov eax, [num] sub eax, edx |
Avec le fpu, la troncature à 2 décimales donne: num dd 1235.12345 res dd 0
...
; On modifie le mot de controle ; pour activer la troncature lors d'un FRNDINT fldcw word ptr [res] or byte ptr [res], 0Ch fstcw word ptr [res]
mov [res], 100.0 fld [res] fld st fld [num] fmul frndint fdivr fstp [res] | Core Breaker 
|
|
Cette discussion est classée dans : nombre, tronquer
Répondre à ce message
Sujets en rapport avec ce message
petit problême FPU [ par prunkdump ]
Bonjours, voilà je voudrais savoir comment afficher un nombre à vigule flottante lorsqu'il est en mémoire. Plus simplement comment convertir un nombre
conversion de nombre [ par jolindji ]
bonjour a tous... j'ai besoin d'un petit programme qui effectuerai la conversion d'un nombre entré au clavier en base 2,8,10,16ou quelque choes qui y
Comment convertir une chaine de caractere en nombre [ par davidv ]
Voila,comment une chaine de caractere "12" par exemplepeut elle etre convertie en nombre 12.merci a tousdavidV
GENERATUER NOMBRE ALEATOIRE EN ASM [ par fser ]
| -= Fr@nçois =- | (cliquez pour m'envoyer un mail)mon siteMERCI DE FAIRE PARVENIR UN PROGRAMME EN ASSEMBLEUR POUR 68 HC 11 POUR GENER
Avez-vous des algorithmes pour la génération de nombre aléatoire? [ par Rigel Io ]
Salut, ma question est donc assez simple je voudrai seuleument savoir comment générer des nombres aléatoires. Je voudrai savoir car à chaque fois que
Aide nombre en asm 8086 16 bits [ par Maureka ]
je suis debutant en asm intel 16 bits.j'ai un projet à réaliser et cela consiste à faire un programme qui affiche la liste des nombres premiers compri
Probleme nombre signe et non signe [ par Crackshoot ]
Voila je voudrais cree un tit programme qui permet d'additionner des nombre negatif et posif mais je sais pas de quel maniere procede, j'arrive qu'a l
nombre aléatoire en asm 16f84 [ par sodhaine ]
Bonjour,Je suis un newbie-moyen en assembleur/électronique; j'essaie de faire un dé électronique en assembleur 16f84 (avec affichage sur écran LCD) e
[NEWBIE] Petit Probleme ! Aidez moi ! [ par xaminou ]
Voila , jaimerai cree une fonction qui calcule la suite suivante :Xn+1=Xn + (Xn2 or 5) qui prend en paramètre (dans la pile) l'adresse d'un nombre Xn
Afficher un nombre [ par MaxSoldier ]
Bonjours, je voudrais afficher un nombre mais j'ai toujours des erreur : J'ai donc 2 questions : Comment déclarer une variable qui contiendra des nomb
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Arnault Nouvel et Antoine Dongois Le processus à prendre : Apprendre (découvrir la plateforme) Préparer (documenter l'historique et choisir la méthode de MAJ) Test (Test de MAJ) Implémenter (Effectuer la MAJ) Valid...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOURTECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOUR par ROMELARD Fabrice
Après un retour sur l'histoire des TechDays de Paris et le fait que ce soit le plus gros event MS au monde (du fait de sa gratuité), le président de MS France (Eric Boustoullier) a fait une présentation de la vision Microsoft pour les années à venir...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : PIC 16F84RE : PIC 16F84 par pont
Cliquez pour lire la suite par pont RE : PIC 16F84RE : PIC 16F84 par belounis
Cliquez pour lire la suite par belounis RE : PIC 16F84RE : PIC 16F84 par pont
Cliquez pour lire la suite par pont
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|