VIRGULE FIXE
Fermé
karemkadidola
Messages postés
9
Date d'inscription
mardi 6 octobre 2009
Statut
Membre
Dernière intervention
21 février 2012
-
11 oct. 2009 à 09:32
karemkadidola - 11 oct. 2009 à 23:51
karemkadidola - 11 oct. 2009 à 23:51
A voir également:
- VIRGULE FIXE
- Freeplug rouge fixe - Forum Réseaux sociaux
- Comment connecter un ordinateur fixe en wifi sans fil - Guide
- Annuaire maroc telecom fixe ✓ - Forum Mobile
- Trouver le propriétaire d'un numéro de téléphone fixe belgique ✓ - Forum Mobile
- Trouver le propriétaire d'un numéro de téléphone fixe en Belgique - Forum Consommation & Internet
3 réponses
Non effectivement, la virgule, en tant que caractère, ne fait pas partie du 'nombre'.
Alors comment fait-on ?
Simplement en écrivant le nombre sous la forme: M E
- M représente la Mantisse (comprise par convention entre 1 et 2 (nous sommes en binaire!)),
- E représente l'Exposant.
Un détail, la taille de la mantisse et de l'exposant sont bien sûr déterminés à l'avance. Par exemple dans ton exemple sur 16 bits, on pourrait avoir 10 bits pour la mantisse et 6 bits pour l'exposant.
Pour représenter 25,25, on écrirait:
25,25 (base 10) = 11001,01 (base 2)
- M = 1,100101
- E = 100 (soit 4 en base 10)
Ce qui nous donnerait le nombre 25,25 en base 2:
1001010000000100 (on oublie le premier '1' de la mantisse car, par convention, il existe toujours. J'ai simplifié car je n'ai pas parlé de nombres négatifs, mais le principe reste le même.
Pour de plus amples informations, fais une recherche sur la toile, par exemple ici.
Bonne continuation.
Alors comment fait-on ?
Simplement en écrivant le nombre sous la forme: M E
- M représente la Mantisse (comprise par convention entre 1 et 2 (nous sommes en binaire!)),
- E représente l'Exposant.
Un détail, la taille de la mantisse et de l'exposant sont bien sûr déterminés à l'avance. Par exemple dans ton exemple sur 16 bits, on pourrait avoir 10 bits pour la mantisse et 6 bits pour l'exposant.
Pour représenter 25,25, on écrirait:
25,25 (base 10) = 11001,01 (base 2)
- M = 1,100101
- E = 100 (soit 4 en base 10)
Ce qui nous donnerait le nombre 25,25 en base 2:
1001010000000100 (on oublie le premier '1' de la mantisse car, par convention, il existe toujours. J'ai simplifié car je n'ai pas parlé de nombres négatifs, mais le principe reste le même.
Pour de plus amples informations, fais une recherche sur la toile, par exemple ici.
Bonne continuation.
merci pour t'être penché sur mon cas en tout cas, je retiens que c'est juste une question de convention...et merci pour la rapidité de la réponse j'apprecie
bonne soirée à toi
bonne soirée à toi
c encore cher loupius, justement c là qu'est le problème si la machine ignore la virgule pour 2525 avec deux chiffres avant la virgule il va coder ceci 110010000011001 binaire pur pour 2525 en admettant qu'on replace la virgule après grace à la programmation on aura 1100100000110,01 qui vous êtes d'accord avec moi n'a rien à voir avec 11001,01 justement si on a eu 11001,01 c'est puisque on a converti la parti après la virgule autrement en faisant justement ce que l'on sait 0,25 x 2 = 0,50 on retiens 0 puis 0,50 x 2 on obtient 1 et on s'arrete là qui nous donne xx,01 pour la partie decimale ma question en super bref c'est comment coder cette partie après la virgule AUTREMENT si on ne sait pas que cette partie se trouve après la virgule puisqu'on ignore la virgule je ne sais pas si j'arrive à bien formuler ma question...et c là que ça coince pour moi
merci encore de ton attention à mon souci
bonne soirée
merci encore de ton attention à mon souci
bonne soirée
Ok, je n'ai pas été assez clair.
Tout est une question de convention;
On ne met pas de virgule car on ne peut pas la mettre. L'entier codé en mémoire n'est pas de type chaîne de caractères. Il n'y a aucune possibilité de mettre une virgule ( il n'y a pas de bit qui permette de l'identifier). Il n'y a donc que la convention qui permet de savoir où se trouve la virgule.
C'est la convention qui permet de résoudre le problème.
Bonne continuation.
Tout est une question de convention;
On ne met pas de virgule car on ne peut pas la mettre. L'entier codé en mémoire n'est pas de type chaîne de caractères. Il n'y a aucune possibilité de mettre une virgule ( il n'y a pas de bit qui permette de l'identifier). Il n'y a donc que la convention qui permet de savoir où se trouve la virgule.
C'est la convention qui permet de résoudre le problème.
Bonne continuation.
11 oct. 2009 à 17:46
merci
11 oct. 2009 à 18:36
Voyons maintenant la virgule fixe.
Un exemple en base 10:
- soient 3 nombres: 252525,123456 / 2525,1234 / 25,12
Si on les écrit en vigule fixe avec 3 chiffres après la virgule, on écrira alors:
252525,123 / 2525,123 / 25,120
Si on s'est mis d'accord on pourra les écrire: 252525123 / 2525123 / 25120, la virgule devenant inutile puisque l'on sait que les 3 chiffres de droite sont après la virgule.
En base 2, c'est exactement la même chose; il suffit de se mettre d'accord sur le nombre de chiffres après la virgule. Si on reprend l'exemple avec : 25,25 (base 10) = 11001,01 (base 2). Si on dit que le nombre est 16 bits avec:
- 4 bits après la virgule, on pourra écrire: 0000000110010100
- 6 bits après la virgule, on pourra écrire: 0000011001010000
- 8 bits après la virgule, on pourra écrire: 0001100101000000
Tout est une question de convention.
Ai-je été assez clair ?