-1
votes

Quel est le type de float le plus grand peut contenir?

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? xxx

pour lequel la sortie est: xxx


5 commentaires

Oui. Son flottant point, pas fixe point.


Type de flotteur a 32 bits dans lequel 8 bits sont pour la partie numéro total (chiffres avant point décimal) SON NON Les chiffres avant le point décimal. C'est la base.


Eh bien ... vous devriez vraiment rechercher donc ou wikipedia avant de poser de telles questions.


La plus grande valeur qu'un type de point flottant peut représenter est l'infini.


Voir le en-tête de votre système. Il devrait inclure flt_max . À 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.


3 Réponses :


2
votes

quel est le plus grand nombre [le type] de flotteur peut contenir?

la standard C Définit : < / p> xxx

inclure pour que ce soit #define d.


0 commentaires

2
votes

- numérique Les limites des types de points flottants ont vos réponses, spécifiquement ...

  • flt_max
  • DBL_MAX
  • ldbl_max

    valeur finie maximale de float , double et double respectivement

    ... et ...

    • FLT_DIG
    • DBL_DIG
    • LDBL_DIG

      Nombre de chiffres décimaux qui sont garantis dans le texte -> float / double / long double -> Texte aller-retour sans changement En raison de l'arrondissement ou du débordement

      Cette dernière partie est censée dire qu'un float plus longtemps (c'est-à-dire des chiffres plus significatifs) que flt_dig n'est plus garanti pour être précisément représentable.


1 commentaires

Les commentaires ne sont pas pour une discussion prolongée; Cette conversation a été déplacé pour discuter .



3
votes

Le format de point flottant 32 bits le plus commun, IEEE-754 binaire32 , 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).

Le bit de signe détermine si le nombre est positif (0) ou négatif (1).

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 ».

Si l'exposant n'est pas 11111111 et n'est pas zéro, la valeur du point flottant représente 2 E-127 • (1 + F / 2 23 ), 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.

Si l'exposant est zéro, la valeur du point flottant représente 2 1-127 • (0 + f / 2 23 ) 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.

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 -1), de sorte que le nombre représenté est 2 254 -127 • (1+ (2 23 -1) / 2 23 ) = 2 127 • (2-2 < sup> -23 ) = 2 128 -2 104 = 340282346638528859811704183484516925440.

dans flotteur A = 123456789.1; , le type float 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.


2 commentaires

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 • (2-2 -23 ) = 2 128 -2 104 ? Le résultat est correct, cependant.