Сколько у вас двоичное представление с фиксированной точкой xxx?

Я пытаюсь измерить, насколько имеет точность при преобразовании в двоичный режим представления фиксированных точек. сначала я попытался использовать этот 0.9375. И я получил двоичный файл 0.1111. второй я попробовал использовать этот 0.9377, а также получил двоичный файл 0.1111

Между ними нет ничего другого.

Также как я могу решить эту проблему? Есть ли другой путь? Сделать конвертирование?

Для вашего понимания, я дал мне знать еще один пример. Например, если я хочу преобразовать 3.575 в двоичный, то 3.575 – 11.1001. но если я снова вернусь к десятичному, то 3.5625. Это очень отличается по оригинальной стоимости.

Из аналогичного вопроса мы имеем:

Base 2: Twos дополнение 4 целое, 4-битное дробное

 -2^3 2^2 2^1 2^0 . 2^-1 2^-2 2^-3 2^-4 -8 4 2 1 . 0.5 0.25 0.125 0.0625 

Только с 4 дробными битами представленное число имеет только 0,0625

 3.575 could be 11.1001 = 2+ 1+ 0.5 + 0.0625 => 3.5625 to low or 11.1010 = 2+ 1+ 0.5 + 0.125 => 3.625 to high 

Это должно указывать на то, что 4 бита недостаточно, чтобы точно представлять «3.575».

Чтобы выяснить, сколько бит вам нужно умножить на мощность 2, пока вы не получите целое число: для «3.575» это довольно много (50 дробных бит).

 3.575 * 2^2 = 14.3 (not integer) 3.575 * 2^20 = 3748659.2 3.575 * 2^30 = 3838627020.8 3.575 * 2^40 = 3930754069299.2 (not integer) 3.575 * 2^50 = 4025092166962381.0 (INTEGER) we need 50 bits! 3.575 => 11.10010011001100110011001100110011001100110011001101 

Умножение на две смены слова влево ( << ) Когда нет оставшихся дробных битов, это означает, что число полностью представлено, тогда число сдвигов - это количество требуемых дробных бит.

Для фиксированной точки вам лучше подумать о том уровне точности, который требуется вашему приложению.

Давайте будем гением компьютера.