Мои ответы на проблему ниже отличаются от ключа ответа. Проблема: мы предполагаем, что IEEE решил добавить новое 8-битное представление с его основными характеристиками, совместимыми с 32/64-битными представлениями. Рассмотрим следующие четыре 8-битных числа:
A: 11100101 B: 00111001 C: 00001100 D: 00011101
Десятичные значения, представленные в приведенных выше числах, следующие, в частности заказ: 3.125, -21, 29/32, 3/8. Q1: Какое 8-битное число с плавающей запятой представляет 29/32 (выберите из A, B, C, D)? A1: D Учитывая приведенную выше информацию, выясните следующее: Q2: количество бит, необходимое для экспоненты A2: 3 Q3: количество бит, необходимое для дроби: A3: 4
Я согласен с ответом на Q1, но я получил разные ответы для A2 и A3 (A2: 2 и A3: 5) 29/32 = 29 * 2 ^ -5 => в двоичном коде 11101 * 2 ^ -5. Если мы сместим десятичную точку, чтобы преобразовать ее в двоичную нормализованную форму: 1.1101 * 2 ^ -1. Таким образом, ответ для Q1 должен быть битовым шаблоном, который заканчивается в 1101, следовательно, D. Ответ Q2: Если ответ 3: 001 1101, fra c = 1101, exp = 001 (нормализовано), смещение = 3 => E = exp - смещение; Е = 1 - 3 = -2. Если мы переведем все обратно в двоичную нормализованную форму (1.fra c * 2 ^ E), мы получим: 1.1101 * 2 ^ -2 = 11101 * 2 ^ -6 = 29/64 (не 29/32 как заявлено изначально). Но когда я использую следующее представление 0 00 11101: 2 бита для exp (смещение = 2 ^ 1 - 1 = 1), 5 бит для fra c, результаты совпадают. exp = 00, поэтому используется ненормализованная запись (0.fra c * 2 ^ E, где E = (exp + 1) - смещение): E = 0 + 1-1 = 0 => 0,11101 * 2 ^ 0 = 11101 * 2 ^ -5 = 29/32. Что я делаю неправильно? Спасибо!