2015-05-15 4 views
0

Этот вопрос похож на вопрос, заданный здесь: Floating point conversion for 8-bit floating point numbers. Отмеченный ответ хорош, но мне не хватает того, что означают некоторые из символов, и часть математики завершена между строками. Если бы вы могли, пожалуйста, пройдите меня через процесс преобразования следующей 8-битной двоичной с плавающей запятой в ее десятичную копию с IEEE 754-2008.8 бит с плавающей точкой двоичный до десятичного

Где эта формула получена и какие переменные в этой формуле, в частности 2**:

bias = emax = 2**(k - p - 1) - 1 

Пожалуйста, покажите мне шаги с математикой, чтобы преобразовать 0010 0110 в это десятичное представление.

+0

Вам понадобится знать, какой формат используется. Говорить «IEEE 754» недостаточно: IEEE 754-2008 не указывает 8-битный двоичный формат с плавающей запятой. В формате * IEEE 754 можно описать 8-битные форматы, но в этом случае вам нужно будет указать некоторые параметры. Поэтому тот, кто дал вам эти 8 бит, также несет ответственность за то, чтобы сообщить вам, в каком формате они должны находиться; без этой информации нет способа интерпретировать эти биты. –

ответ

0

Я нашел этот сайт с подробным объяснением о том, как сделать преобразование:

http://sandbox.mc.edu/~bennet/cs110/flt/ftod.html

Следующая является копипаст из одного 8-битового примера, который разбивает двоичную строку как 0 010 0110:

Convert the 8-bit floating point number 26 (in hex) to decimal. 
Convert and separate: 2616 = 00100110 2 
Exponent: 0102 = 210; 2 − 3 = -1. 
Denormalize: 1.0112 × 2-1 = 0.1011. 
Convert: 
Exponents 20  2-1  2-2  2-3  2-4 
Place Values 1  0.5  0.25  0.125  0.0625 
Bits 0 . 1  0  1  1 
Value   0.5   + 0.125 + 0.0625 = 0.6875 
Sign: positive 
Result: 26 is 0.6875. 
Смежные вопросы