Как рассчитать десятичные цифры точности, основанные на количестве бит?

Я изучаю форматы с плавающей запятой (IEEE). В формате одинарной точности с плавающей запятой упоминается, что мантисса имеет 24 бита и поэтому имеет 6 1/2 десятичных цифр точности (как в книге "понимание машины" ), и 7.22 десятичных цифр точности.

Я не понимаю, как вычисляются десятичные цифры точности. Кто-нибудь, пожалуйста, просветит меня?

Ответы

Ответ 1

С 24 битами, если один бит зарезервирован для знака, то наибольшее десятичное число, которое вы можете представить, равно 2 ^ 23-1 = 8388607. То есть вы можете получить 6 цифр, а иногда и 7-е. Это часто выражается как "6 1/2 цифр". Если 24 бита представляют беззнаковое число, то максимальное значение, которое вы можете сохранить, равно 2 ^ 24-1 = 16,777,215 или 7 и цифры доли.

Когда кто-то цитирует вам число с явными десятичными знаками, например 7,22 десятичными цифрами, то, что они делают, берет журнал (база 10) максимального значения. Итак, log (16777115) = 7,22.

В общем, количество десятичных цифр, которое вы получите от заданного количества бит:

d=log[base 10](2^b)

где b - количество бит, а d - число десятичных цифр. Тогда:

d=b * log(2)
d~=b * .3010

Таким образом, 24 бита дают 24 *.3010 = 7,224