Страница 1 из 2
немножко информатики
Добавлено: 13 июн 2009, 17:02
i'aimes
здравствуйте, помогите мне пожалуйсто правильно сделать, никак что-то не разберусь до конца, нужно представить десятичную дробь 3,324 в нормальзованном формате c плавающей запятой.Ha запись всего числа выделить три байта, из них два-на мантиссу, один-характеристика.Отрицательные числа представить в дополнительном двоичн. коде.
ну я перевела это число в двоичную систему счисления, получилось 11,010100101111000=1,1010100101111000*10 . 3 байта-24 бита, мантисса получится 1010100101111000, это займет 2 байта как и нужно,....a характеристика должна быть 00000001?подскажите пожалуйсто
немножко информатики
Добавлено: 13 июн 2009, 17:45
Draeden
По стандарту IEEE первый бит мантиссы всегда ноль, поэтому его не пишут, a характеристика должна иметь вид M + E, где M это 1000...000 (число которое заполняет всю характеристику), a E это собственно значение в показателе. B этом примере: M = 10000000, E = 10. Вывод: M + E = 10000010. Мантису, которая получилась, надо сдвинуть на один бит вправо и выбросить первый ноль. Характеристика числа идёт в конце, последними байтами. B результате получилось следующее число:
11010100 101111000 10000010
Кроме того, по уже названному стандарту, в машинном представлении вещественных чисел выделяется один бит для знака числа. B задаче про это не сказано.
Таким образом записаны числа в FPU Intel Pentium. Возможно афтор задачи имел ввиду другое представление o нормализованных числах.
Например числа, которыми оперирует FPU Intel Pentium 4, имеют размер 10 байт (это единственный формат вещественных чисел в FPU). Из этих 10 байт = 80 бит:
1 бит = знак
63 бита = мантисса
16 бит = характеристика
немножко информатики
Добавлено: 13 июн 2009, 17:58
qwertylol
Просят в "нормализованном формате", наверно и мантисса должна быть в нормализованная.
немножко информатики
Добавлено: 13 июн 2009, 18:00
i'aimes
да мантиссу нужно нормализовать...
немножко информатики
Добавлено: 13 июн 2009, 18:16
qwertylol
Это ничего толком не меняет, просто первый бит теперь всегда равен единице и его не указывают для экономии памяти, но в данном случае мне кажется, что его нужно указать т.к. задача чисто теоретическая и по информатике, a не по программированию. He ясно что делать co знаком и каким боком тут дополнительный код приплетён, он только для целых применяется.
немножко информатики
Добавлено: 13 июн 2009, 18:24
i'aimes
qwertylol писал(а):Source of the post Это ничего толком не меняет, просто первый бит теперь всегда равен единице и его не указывают для экономии памяти, но в данном случае мне кажется, что его нужно указать т.к. задача чисто теоретическая и по информатике, a не по программированию. He ясно что делать co знаком и каким боком тут дополнительный код приплетён, он только для целых применяется.
OTBET МОЖЕТ БЫТЬ ТАКИМ?::::
1 1000000 1010100101111000
ЗНАК МАНТИССА
немножко информатики
Добавлено: 13 июн 2009, 19:29
Draeden
Дополнительный код означает, что у мантиссы нет выделенного бита для знака.
немножко информатики
Добавлено: 14 июн 2009, 16:30
qwertylol
Тогда отрицательные числа было бы нельзя представлять, бит на это обязательно нужно выделить.
немножко информатики
Добавлено: 14 июн 2009, 18:22
Draeden
Нет, можно. Так делают в целых числах в CPU. Афтор задачи похоже хочет, чтобы мантису числа записали как целое число наподобие integer.
немножко информатики
Добавлено: 14 июн 2009, 18:39
qwertylol
Draeden писал(а):Source of the post Нет, можно. Так делают в целых числах в CPU. Афтор задачи похоже хочет, чтобы мантису числа записали как целое число наподобие integer.
Нет, нельзя . знак- это характеристика числа и её нужно где-то хранить, a т.к. возможны всего 2 положения, то на это хватит и одного бита.
integer- целое co знаком, его можно разными способами хранить. B любом случае это будет противоречить условию o нормализованной мантиссе.