#math #hex #ieee-754
#математика #шестнадцатеричное #ieee-754
Вопрос:
Моя задача — преобразовать шестнадцатеричное число в формат двойной точности (IEEE 754) на бумаге. Я уже преобразовал шестнадцатеричное число: 0x40790A0000000000 в двоичный 64-битный формат, и теперь у меня есть: 0 10000000111 1001000010100000000000000000000000000000000000000000
Что касается следующего шага, я не совсем уверен, что делать. Мне нужно преобразовать его в десятичное число, и я перепробовал несколько способов, но так и не получил нужного результата. Надеюсь, вы сможете мне помочь, и спасибо вам.
Комментарии:
1. Вам следует прочитать о формате IEEE 754 и преобразовать его части в знак, экспоненту и мантиссу
2. Ты ходил в FERI?
Ответ №1:
Переход от https://en.wikipedia.org/wiki/Double-precision_floating-point_format,
4 0 7 9 0 A 0 0 0 0 0 0 0 0 0 0
0100 0000 0111 1001 0000 1010 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
0 - Sign bit (this is a positive number)
100 0000 0111 - Exponent
1001 0000 1010 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 - Fraction
Значение экспоненты равно 1031. Поскольку оно ненулевое, дробная часть задается выражением 1 sum от i = 1 до 52 бит_(52-i) * 2 ^ (-i).
Следовательно, значение дроби равно 1 1/2 0/4 0/8 1/16 … ~= 1.56
Оттуда вы должны быть в состоянии вычислить остальное.
(Не решаю это полностью, потому что это выглядит как домашнее задание.)
Комментарии:
1. Я смотрел на это, но не совсем понял. Теперь, после простого объяснения, кажется более понятным, спасибо 🙂