Как преобразовать двоичное число с плавающей запятой одинарной точности в десятичное

Двоичное число с плавающей запятой одинарной точности представляется 32-битным. Эти биты разделены на три части, которые представляют знак, показатель степени и дробную часть десятичного числа (согласно стандарту IEEE 754).

Соглашение о нумерации битов

Дробная часть сначала преобразуется в десятичную путем суммирования всей 2−n 2 ^ {- n} 2 −n s (где n n n — позиция бита в дробной части, имеющей 11 1). Например, если 23-битная дробная часть имеет аннотацию 1 1 > 1 в битах 2 и 3:

В битах 2 и 3 стоит 1

Его десятичный эквивалент будет:

2 — 2 + 2−3 = 1 / 4 + 1 / 8 = 0 . 3 7 5 2 ^ {- 2} + 2 ^ {- 3} = 1/4 + 1/8 = 0,375 2 −2 +2 −3 = 1/4 + 1/8 = 0. 375

Формула

Применение следующей формулы преобразует все 32-битное двоичное число в десятичное,

( — 1 ) s × ( 1 +(-1)^stimes(1+ (−1) s × (1+ Дробь ) × 2 e x p — 1 2 7 ) times2 ^ {exp-127} ) × 2 exp-127

, где s s s — знаковый бит , Fraction — это значение, которое было вычислено выше в качестве примера, а e x p exp exp is t числовое значение по основанию 10 8-битов, зарезервированных для экспоненты.

Пример

s = 1 s = 1 s = 1

Дробь = 2 — 1 = 0 . 5 = 2 ^ {- 1} = 0,5 = 2 −1 = 0,5

e x p = 2 0 + 21 + 2 7 = 1 + мес> 2 + 1 2 8 =131 exp = 2 ^ 0 + 2 ^ 1 + 2 ^ 7 = 1 + 2 + 128 = 131 exp = 2 0 +2 1 +2 7 = 1 + 2 + 128 = 131

Подставьте значения в формулу, чтобы получить окончательный ответ:

Ответ = ( — 1 ) 1 × ( 1 + 0 . 5 ) × 2 1 3 1 — 1 2 7 = — 1 . 5 × 2 4 = — 2 4 . 0 = (- 1) ^ 1 times (1+ 0,5) times2 ^ {131-127} = — 1,5 times2 ^ 4 = -24,0 = (- 1) 1 × (1 + 0. 5) × 2131−127 = −1,5 × 2 4 = −24,0

Оцените статью
nanomode.ru
Добавить комментарий