Dręczy mnie jedno zagadnienie:
typ float 4 bajtowy(czyli 32bitowy ) ma według różnych źródeł zakres wartości od -3.4E38 do 3.4E38 ,
natomiast typ unsigned int też 4bajtowy (32bitowy) , ma zakres od 0 do 2^32.
Czyli zakres float jest większy niż unsigned int mimo że float i unsigned int mają tyle samo bitów, a na dodatek float musi jeszcze przechowywać 1 bit na znak(+-) oraz ileś tam bitów na informację o przecinku.
Rozumując prosto to na pierwszy rzut oka nie da się w 32 bitach zmieścić więcej niż 2^32+1 różnych wartości czyli tyle co oferuje unsigned int
Więc czy ktoś jest w stanie to w łopatologiczny sposób wytłumaczyć?
typ float 4 bajtowy(czyli 32bitowy ) ma według różnych źródeł zakres wartości od -3.4E38 do 3.4E38 ,
natomiast typ unsigned int też 4bajtowy (32bitowy) , ma zakres od 0 do 2^32.
Czyli zakres float jest większy niż unsigned int mimo że float i unsigned int mają tyle samo bitów, a na dodatek float musi jeszcze przechowywać 1 bit na znak(+-) oraz ileś tam bitów na informację o przecinku.
Rozumując prosto to na pierwszy rzut oka nie da się w 32 bitach zmieścić więcej niż 2^32+1 różnych wartości czyli tyle co oferuje unsigned int
Więc czy ktoś jest w stanie to w łopatologiczny sposób wytłumaczyć?