Je suis nouveau à la programmation et je suis récemment proposé cette question simple. Le type de flotteur a 32 bits dans lequel 8 bits sont pour l'ensemble de la partie numéro (la mantissa). Donc, ma question est de flotter des chiffres de type de type de type à flotteur supérieur à 255,9999?
Et j'apprécierais également si quelqu'un m'a dit pourquoi ce code se comporte de manière inattendue. Est-ce un problème connexe? P> pour lequel la sortie est: p>
3 Réponses :
ont vos réponses, spécifiquement ... p>
- flt_max li>
- DBL_MAX LI>
- ldbl_max li> ul>
valeur finie maximale de
float code>,
double code> et
double code> respectivement p> blockQuote>
... et ... p>
- FLT_DIG LI>
- DBL_DIG LI>
- LDBL_DIG LI> ul>
Nombre de chiffres décimaux qui sont garantis dans le texte ->
float code> /
double code> /
long double code> -> Texte aller-retour sans changement En raison de l'arrondissement ou du débordement p> blockQuote>
Cette dernière partie est censée dire qu'un
float code> plus longtemps (c'est-à-dire des chiffres plus significatifs) que
flt_dig code> n'est plus garanti pour être précisément représentable. P>
Les commentaires ne sont pas pour une discussion prolongée; Cette conversation a été déplacé pour discuter .
Le format de point flottant 32 bits le plus commun, IEEE-754 binaire32 em>, n'a pas huit bits pour l'ensemble de la partie numéro. Il a un bit pour un signe, huit bits pour un champ exposant et 23 bits pour un champ signifiant (une partie de fraction). P>
Le bit de signe détermine si le nombre est positif (0) ou négatif (1). p>
Le champ Exposant, E, a plusieurs utilisations. Si elle est 11111111 (en binaire), et le champ de mantisse, f, est égal à zéro, la valeur en virgule flottante représente l'infini. Si e est 11111111, et le champ significand n'est pas nul, il représente une spéciale non-a-Number « valeur ». P>
Si l'exposant n'est pas 11111111 et n'est pas zéro, la valeur du point flottant représente 2 E-127 sup> • (1 + F / 2 23 sup>), avec le signe ajoutée. Notez que la partie fraction est formée en ajoutant 1 au contenu du champ signifiant. Cela est souvent appelé 1 implicite, de sorte que le significand mathématique est 24 bits-1 bit de premier plan 1, 23 bits du champ significand. P>
Si l'exposant est zéro, la valeur du point flottant représente 2 1-127 sup> • (0 + f / 2 23 sup>) ou le négatif de celui-ci si le bit de signalisation est 1. Notez que le bit leader est 0. Celles-ci sont appelés nombres sous-formels. Ils sont inclus dans le format pour faire fonctionner certaines propriétés mathématiques dans l'arithmétique à virgule flottante. P>
La plus grande valeur finie représentée est lorsque l'exposant est 11111110 (254) et le champ signification est tout ce qui est (F est 2 23 sup> -1), de sorte que le nombre représenté est 2 254 -127 sup> • (1+ (2 23 sup> -1) / 2 23 sup>) = 2 127 sup> • (2-2 < sup> -23 sup>) = 2 128 sup> -2 104 sup> = 340282346638528859811704183484516925440. p>
dans flotteur A = 123456789.1; code>, le type
float code> n'a pas assez de précision pour représenter 123456789.1. (En fait, une fraction décimale .1 ne peut jamais être représenté avec un format binaire à virgule flottante.) Quand on n'a que 24 bits pour la mantisse, les chiffres les plus proches de 123456789,1 que nous pouvons représenter sont 123.456.792 et 123.456.800. P>
Votre réponse m'a aidé avec toute ma confusion sur le domaine du flotteur .Merci un million
Je pense que les chiffres dans le calcul de la plus grande valeur ne sont pas tout à fait corrects. Ne devrait-il pas être 2 127 sup> • (2-2 -23 sup>) = 2 128 sup> -2 104 sup>? Le résultat est correct, cependant.
Oui. Son flottant i> point, pas fixe i> point.
Type de flotteur a 32 bits dans lequel 8 bits sont pour la partie numéro total (chiffres avant point décimal) code> SON NON B> Les chiffres avant le point décimal. C'est la base.
Eh bien ... vous devriez vraiment rechercher
donc code> ou
wikipedia code> avant de poser de telles questions.
La plus grande valeur qu'un type de point flottant peut représenter est l'infini.
Voir le code> en-tête de votre système. Il devrait inclure
flt_max code>. À la suite de la poursuite de votre question, des points flottants ont tendance à être moins précis lorsqu'ils se déplaçaient loin de zéro.