dezimal in c # missverständnis?
(während ich versuche zu analysieren wiedecimal
funktioniert) && nach dem Lesen@ jonskeet Artikel und sehenmsdn und in den letzten 4 Stunden nachgedacht, Ich habe ein paar Fragen :
imdieser Link Sie sagen etwas sehr Einfaches:
1.5 x 10^2
hat2
bedeutende Figuren
1.50 x 10^2
hat3
bedeutende Figuren.
1.500 x 10^2
hat4
bedeutende Figuren etc ...
ok ... wir haben die Idee.
aus jons artikel:
sign * mantissa / 10^exponent
Wie üblich ist das Vorzeichen nur ein einziges Bit, aber es gibt 96 Bits Mantisse und 5 Bits Exponent
^ _ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^___ ^^^^^
1 _ 96 5
OK
also maxMantisse val =2^96-1 = 79228162514264337593543950335
welches ist :7.9228162514264*10^28
(Laut meinem iPhone ... konnte Exponentendarstellung in Windows Calc nicht sehen.)
beachten :
7.9228162514264*10^28
hat14 signifikante Figuren (gemäß obigen Beispielen)
jetzt ist der Teil mit dem 5 Bit im Exponenten irrelevant, weil er imNenner - Also brauche ich den min-Wert, der 2 ^ 0 ist
Frage 1 :
msdn sagen: 28-29 significant digits
aber nach meiner Stichprobe (1.500 x 10^2
hat4
bedeutende Figuren) Sie haben2 bedeutende Figuren, die ist7.9
(7 und 9).
wenn msdn geschrieben hätte:
±79228162514264337593543950335 × 10^0
Ich würde das verstehen, da alle signifikanten Ziffern sindim Ausdruck.
warum schreiben sie 28-29 aber zeigen 2 an?
Frage 2 :
Wie wird die Dezimaldarstellung (Mantisse && Exponent) für den Wert 0,5 angezeigt?
der maximale Nenner kann sein2^32-1 --> 31
danke Leute.
Frage 3 :
1 + 96 + 5 = 102 Bits.
msdn sagt:
Das Dezimalschlüsselwort bezeichnet einen 128-Bit-Datentyp.
128-102 = 26
könnte vom Artikel verstehen, warum es keine Verwendung für diese 26 Bits gibt