фон для вопроса - спецификации бинарного 32 float
Мой вопрос касается предположения, что первый (ведущий) бит всегда равен 1, поэтому нам не нужно его хранить.Это правда, но у него есть другая роль в числе ... мы знаем, где это начинается.Поэтому после извлечения этого первого ненулевого бита мы не знаем, где начинается число, если только после этого не будет другого ненулевого бита.
В этой статье вики они используют двоичный номер (1.100011).Таким образом, дробь равна 100011, и мы можем восстановить это число без проблем.Однако как насчет (1.000011) двоичного файла?мы извлекаем 1, и у нас остается 000011, и, поскольку мы не можем хранить начальные нули в битовом поле, инициализированном нулем, мы получаем 11. Но что происходит, когда мы хотим построить его обратно?мы получаем 1,11, и это неправильно.
Так как же мы можем свободно извлечь этот начальный бит в произвольном числе?