dziesiętny w c # nieporozumieniu?

(próbując przeanalizować, jakdecimal działa) && po przeczytaniuArtykuł @jonskeet i widzącmsdn i myślenie przez ostatnie 4 godziny, Mam parę pytań :

wten link mówią coś bardzo prostego:

1.5 x 10^2 ma2 znaczące liczby

1.50 x 10^2 ma3 znaczące liczby.

1.500 x 10^2 ma4 znaczące liczby itp ...

ok ... mamy pomysł.

z artykułu Jona:

 sign * mantissa / 10^exponent

Jak zwykle znak jest tylko jednym bitem, ale jest 96 bitów mantysy i 5 bitów wykładnika

 ^ _ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^___ ^^^^^

 1 _                     96                         5

dobrze

tak maxMantiss val =2^96-1 = 79228162514264337593543950335 który jest :7.9228162514264*10^28 (według mojego iPhone'a ... nie można zobaczyć reprezentacji wykładnika w systemie Windows Calc.)

ogłoszenie :

7.9228162514264*10^28 ma14 liczby znaczące (zgodnie z powyższymi przykładami)

teraz część z 5 bitami w wykładniku jest nieistotna, ponieważ jest wmianownik - więc potrzebuję min val, który wynosi 2 ^ 0

Pytanie 1 :

msdn powiedzieć: 28-29 significant digits

ale według mojej próbki (1.500 x 10^2 ma4 znaczące liczby) oni mają2 znaczące liczby7.9 (7 i 9).

jeśli msdn napisałby:

±79228162514264337593543950335 × 10^0

zrozumiałbym to, ponieważ wszystkie znaczące cyfry sąw wyrażeniu.

dlaczego piszą 28-29, ale wyświetlają 2?

pytanie 2 :

jak będzie wyświetlana reprezentacja dziesiętna (mantiss && wykładnik) dla wartości 0,5?

maksymalny mianownik może być2^32-1 --> 31

dzięki chłopaki.

pytanie 3 :

1 + 96 + 5 = 102 bity.

msdn mówi:

Słowo dziesiętne oznacza 128-bitowy typ danych.

128-102 = 26

mógłbym z artykułu zrozumieć, dlaczego nie ma zastosowania do tych 26 bitów

questionAnswers(2)

yourAnswerToTheQuestion