представить вещественные числа в четырехбайтовой ячейке



Автор Ёаша Нестеров задал вопрос в разделе Другие языки и технологии

Представить вещественные числа в четырёхбайтовой ячейке памяти в формате с плавающей точкой. и получил лучший ответ

Ответ от Extrn[гуру]
в числах одинарной точности на знак отводится 1 бит, на экспоненту - 8, на мантиссу - 23.
в нормализованных числах старший бит всегда равен единице и он не записывается в число, поэтому реально мантисса для таких чисел имеет размер 24 бита.
к экспоненте перед записью добавляется число 127.
для начала запишем знак числа. если число положительное - запишем в знак 0, если отрицательное - 1 и отбросим знак числа для дальнейших вычислений.
далее приведем число к такому виду, что перед запятой в двоичной записи у него только единица (если изначальное число 0 - оно имеет специальную запись 0 00000000 00000000000000000000000₂)
для этого либо умножаем число на 2 пока оно не станет >= 1, если оно меньше 1, либо делим на 2 пока оно все еще >= 1.
если умножаем - в экспоненту пойдет отрицательное число умножений. если делим - положительное число делений.
потом получившееся число умножаем на 2²³ (8388608), округляем до ближайшего целого и отбрасываем старший бит. результат записываем в мантиссу.
0,5 - положительное, в знак 0
0,5 < 1, умножаем его на 2, пока оно не станет >= 1. получилось 1 за 1 умножение. в экспоненту пойдет -1
мантисса = 1*8388608 = 100000000000000000000000₂. отбрасываем старший бит. получается 000000000000000000000000₂
записываем:
знак = 0 (число положительное)
в экспоненте 127 - 1 = 126 = 01111110₂
в мантиссе 000000000000000000000000₂ (без старшей единицы),
получаем:
0 01111110 00000000000000000000000₂
25,12 положительное. в знак 0
25,12 делим на 2, пока >= 1. получаем 1,57 за 4 деления (если поделим еще раз, будет уже 0,785 < 1). в экспоненту пойдет +4.
1,57 * 8388608 = 13170114,56. округляем, получаем 13170115 = 110010001111010111000011₂
отбрасываем старший бит, получаем 10010001111010111000011₂
записываем
знак = 0
экспонента = 127+4 = 10000011₂
мантисса = 10010001111010111000011₂
получаем:
0 10000011 10010001111010111000011₂
-25,12 отрицательное, записываем в знак единицу, далее отбрасываем знак числа и считаем ровно как в предыдущем примере
1 10000011 10010001111010111000011₂
-3456,1. в знак единица, отбрасываем знак.
3456,1 > 1. делим на 2¹¹. получаем 1.687548828125, в экспоненту 11
1.687548828125 * 8388608 = 14156185.6. округляем. 14156186 = 110110000000000110011010₂, отбрасываем старшую единицу: 10110000000000110011010₂
знак 1
экспонента 127 + 11 = 10001010₂
мантисса 10110000000000110011010₂
результат 1 10001010 10110000000000110011010₂
с денормализованными числами работают иначе. если интересно (в чем я сомневаюсь :)), пишите в комментарии.

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: Представить вещественные числа в четырёхбайтовой ячейке памяти в формате с плавающей точкой.

что такое вещественные числа в паскале? как отличить integer число от REAL ?
у вещественных чисел в формате 3 поля: знак порядок мантисса
у целых как бы 2 поля: знак и
подробнее...

Что такое вещественные числа?
В Delphi нет и не может быть вещественных чисел. Тип real - на самом деле 8-байтный с плавающей
подробнее...

Как перевести число из экспоненциальной формы в вещественную?
Вещественное число в форме с плавающей точкой (экспоненциальная форма) записывается как пара

подробнее...

что такое фиксированная и плавующая запятая? в чемих различие? плиииз зава экзамен (((
Число с фиксированной запятой — формат представления вещественного числа в памяти ЭВМ в виде целого
подробнее...
Ответ от 3 ответа[гуру]
Привет! Вот еще темы с похожими вопросами:
спросили в Другое
что такое смешанное число ??
Разделить поровну 5 одинаковых апельсинов между тремя детьми можно двумя способами.
подробнее...

что такое действительные числа?
Английский термин "real number" можно перевести как "действительное число" или как "вещественное
подробнее...

комплексные числа. вычислить: квадратный корень из 2i
Можно и без формулы Муавра.
Решим квадратное уравнение z² = 2·i
Оно имеет 2
подробнее...

как определить вес ребра графа ?
Вес ребра — значение, поставленное в соответствие данному ребру взвешенного графа. Обычно
подробнее...

Объясните как решать задачу по информатике, пожалуйста.
1) Записать в двоичной и 16-ричной форме внутреннее представление
наибольшего положительного
подробнее...
спросили в R E M
вопрос по информатике
Вещественные переменные
Вещественные числа представляются в компьютере в так называемой
подробнее...

Помогите решить задачу?
Представим искомое число в виде:
0,abcd+x/100000 где a,b,c,d - цифры.
х - некоторое число
подробнее...

вот занимательная математика а что и как не соображу.. . помогите плиз
Нужно дописать числа в синие ячейки рамки так, чтобы сумма чисел по одной стороне рамки давала
подробнее...

Как на числовой окружности арккосинус найти? Я не понимаю, объясните пожалуйста
Арккосинус 5 не существует (в вещественных числах, в комплексных - существует) , поскольку аргумент
подробнее...
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*