- Главная
- IT и компьютеры
- Кодирование и чтение чисел с плавающей точкой
Кодирование и чтение чисел с плавающей точкой
HEX-шаблон
Введите данные - результат обновится автоматически.
3DCCCCCD
- Биты: знак | порядок | дробь
- 0 | 01111011 | 10011001100110011001101
- Класс значения
- Нормальное
- Бит знака
- 0 (плюс)
- Хранимый порядок
- 123 (смещение 127)
- Дробные биты в HEX
- 0x4CCCCD
- Десятичное чтение
- 0.10000000149011612
- Точное двоичное значение
- 13421773 × 2^-27
Часть значений появится, когда заполните остальные поля.
Расчёт справочный и не заменяет консультацию специалиста.
Описание
В десятичном режиме вводите конечное число с точкой, необязательным знаком и необязательным порядком. Запятая не принимается. Форма допускает до 40 десятичных цифр и до 96 символов исходной записи; порядок после учёта дробных цифр — от минус 400 до 400. Отрицательный ноль сохраняет свой бит знака. Слова для бесконечности и нечислового значения в этом режиме не вводятся; конечная запись при переполнении формата может округлиться до бесконечности.
В режиме готового шаблона нужны ровно 8 шестнадцатеричных цифр для 32 бит или 16 для 64 бит, без префикса. Это запись всей последовательности битов, а не список байтов в памяти. По ней можно увидеть исходный знак нуля и биты нечислового значения; не заменяйте шаблон его кратким десятичным чтением.
Поле десятичного чтения показывает удобную краткую запись конечного числа. Для проверки представления используйте поле точного двоичного значения: оно выводит целое число, умноженное на степень двойки. Краткая десятичная запись может выглядеть как исходный ввод, хотя хранимое двоичное число отличается.
Как считается
В 32-битном формате первый бит задаёт знак, следующие 8 бит — хранимый порядок со смещением 127, ещё 23 бита — дробную часть. В 64-битном формате порядок занимает 11 бит со смещением 1023, дробная часть — 52 бита. Для нормального числа к дробной части подразумевается ведущая единица; у субнормального числа её нет. Нулевой хранимый порядок обозначает ноль или субнормальное число, полностью заполненный единицами — бесконечность или нечисловое значение.
Десятичная запись сначала разбирается как точное отношение целых чисел, затем округляется к выбранному двоичному формату до ближайшего значения. При точном равенстве расстояний выбирается значение с чётной младшей значащей цифрой. Поэтому десятичное 0.1 в 32-битном формате читается как 0.10000000149011612; точное значение в соседнем поле выражено целым числом и степенью двойки. Это правило относится к двоичному округлению, а не к количеству знаков на экране.
В режиме готовых битов шаблон декодируется без повторного округления; знак, хранимый порядок и дробные биты выводятся отдельно. Для конечных чисел точное значение записано как целая значащая часть, умноженная на степень двойки. Для бесконечности конечного значения нет; для нечислового значения показаны его дробные биты и вид, но числовой результат не определён. Границы ввода и отказы этой формы не являются ограничениями самого стандарта.
Пример расчёта
- Ввод
- 0.1
- Формат
- binary32 — 32 бита
- Режим
- Десятичное → биты
- HEX-шаблон
- 3DCCCCCD
- Класс значения
- Нормальное
- Десятичное чтение
- 0.10000000149011612
Числа взяты из контрольного примера калькулятора - на них он проверяется тестами.
Частые вопросы
Почему введённое 0.1 читается иначе после кодирования?
Шестнадцатеричный шаблон задаёт порядок байтов?
Можно ли ввести нечисловое значение десятичным словом?
Источники
Комментарии (0)
Комментариев пока нет.





