Я впервые изучаю переход от десятичных чисел к стандарту поплавка IEEE 32 и в настоящий момент путаюсь, потому что вижу несколько лекционных слайдов и примеры из университетов, которые делают это в одну сторону, а затем другие, кто это делает другой путь. В частности, с получением 1 и 0 для десятичной дроби. Итак, если у вас есть номер, например, 1234.567Преобразование с плавающей запятой IEEE 32 бит
вы конвертируете 1234 в двоичный файл без проблем, но тогда я очень смущен тем, как идти о преобразовании десятичной дроби. Первоначально Я видел, что вы идете
.567 * 2 = 1.134 = 1
.134 * 2 = .268 = 0
.268 *2 = .536 = 0
Обратите внимание, что это количество цифр в десятичных разрядах. Но затем я вижу, что другие примеры продолжаются с десятичной точкой до некоторой бесконечной точки (где остановиться?). Если я сделаю это выше, я получаю следующее:
10011010010 for 1234
10011010010.100
1.0011010010100 x 2^(10).
127 +10 = 137. 137 in binary is 10001001.
So 32 bits of binary is
0 for sign| 10001001 for exp| 0011010010100 0000000000
32 бит все вместе. Это верно?
ли целая часть 1234 (как в штучной упаковке, например) или 12345 (как и в первых двух пунктах)? – jerry
Ничего себе, извините, что число, которое я пытаюсь преобразовать, составляет 1234.567. – Tastybrownies
На самом деле я думаю, что понял. Если я могу подсчитать количество чисел справа от 1, когда я сначала конвертирую левое число в двоичный, я знаю, сколько раз мне приходится умножать десятичный результат на 2. Как в этом примере, если у меня есть 10 чисел справа от 1, мне нужно 13, чтобы заполнить 23 надел для мантиссы! – Tastybrownies