Консультация № 199055
07.08.2020, 21:21
0.00 руб.
0 1 1
Здравствуйте! Прошу помощи в следующем вопросе: Определить внутренне представление десятичного числа в форме с плавающей запятой и разместить в разрядной сетке одинарного формата, а также записать шестнадцатеричную форму записи. Заданное число в десятичной системе счисления: -562,175.
Решил так:
-562,175=1 1000110010.0010110011
32 разряда:
1,100’011’0010,’0010’1100’1100’0000’000
4 3 2, 2 C C 0 0
Правильно ли? И как сделать со смещенным порядком?

Обсуждение

давно
Старший Модератор
31795
6196
10.08.2020, 12:43
общий
это ответ
Здравствуйте, rrrecord!

Не правильно.

короткое вещественное: бит 31 - знак мантиссы, биты 30-23 - 8-битная экспонента +127, биты 22-0 - 23-битная мантисса без первой цифры.


bit 31 = -562.175<0 => 1
1000 0000 - 0000 0000 - 0000 0000 - 0000 0000

512(29)<562.175 <1024(210)
В экспоненту мы запишем 9+127=136, т.е.
1100 0100 - 0000 0000 - 0000 0000 - 0000 0000

Делим число на 512*2, это равносильно 1/2 разряда двоичной сетки.
562.175 / 1024 =0.54 8999023
Считаем:
[table][row][col]число[/col][col]делитель[/col][col]пишем[/col][col]результат[/col][/row]
[row][col]0.548999023[/col][col]0.500000000[/col][col]1[/col][col]1100 0100 0 1[/col][/row]
[row][col]0.048999023[/col][col]0.250000000[/col][col]0[/col][col]1100 0100 0 10[/col][/row]
[row][col]0.048999023[/col][col]0.125000000[/col][col]0[/col][col]1100 0100 0 100[/col][/row]
[row][col]0.048999023[/col][col]0.062500000[/col][col]0[/col][col]1100 0100 0 1000[/col][/row]
[row][col]0.048999023[/col][col]0.031250000[/col][col]1[/col][col]1100 0100 0 1000 1[/col][/row]
[row][col]0.017749023[/col][col]0.015625000[/col][col]1[/col][col]1100 0100 0 1000 11[/col][/row]
[row][col]0.002124023[/col][col]0.007812500[/col][col]0[/col][col]1100 0100 0 1000 110[/col][/row]
[row][col]0.002124023[/col][col]0.003906250[/col][col]0[/col][col]1100 0100 0 1000 1100[/col][/row]
[row][col]0.002124023[/col][col]0.001953125[/col][col]1[/col][col]1100 0100 0 1000 1100 1[/col][/row]
[row][col]0.000170898[/col][col]0.000976563[/col][col]0[/col][col]1100 0100 0 1000 1100 10[/col][/row]
[row][col]0.000170898[/col][col]0.000488281[/col][col]0[/col][col]1100 0100 0 1000 1100 100[/col][/row]
[row][col]0.000170898[/col][col]0.000244141[/col][col]0[/col][col]1100 0100 0 1000 1100 1000[/col][/row]
[row][col]0.000170898[/col][col]0.000122070[/col][col]1[/col][col]1100 0100 0 1000 1100 1000 1[/col][/row]
[row][col]0.000048828[/col][col]0.000061035[/col][col]0[/col][col]1100 0100 0 1000 1100 1000 10[/col][/row]
[row][col]0.000048828[/col][col]0.000030518[/col][col]1[/col][col]1100 0100 0 1000 1100 1000 101[/col][/row]
[row][col]0.000018311[/col][col]0.000015259[/col][col]1[/col][col]1100 0100 0 1000 1100 1000 1011[/col][/row]
[row][col]0.000003052[/col][col]0.000007629[/col][col]0[/col][col]1100 0100 0 1000 1100 1000 1011 0[/col][/row]
[row][col]0.000003052[/col][col]0.000003815[/col][col]0[/col][col]1100 0100 0 1000 1100 1000 1011 00[/col][/row]
[row][col]0.000003052[/col][col]0.000001907[/col][col]1[/col][col]1100 0100 0 1000 1100 1000 1011 001[/col][/row]
[row][col]0.000001144[/col][col]0.000000954[/col][col]1[/col][col]1100 0100 0 1000 1100 1000 1011 0011[/col][/row]
[row][col]0.000000191[/col][col]0.000000477[/col][col]0[/col][col]1100 0100 0 1000 1100 1000 1011 0011 0[/col][/row]
[row][col]0.000000191[/col][col]0.000000238[/col][col]0[/col][col]1100 0100 0 1000 1100 1000 1011 0011 00[/col][/row]
[row][col]0.000000191[/col][col]0.000000119[/col][col]1[/col][col]1100 0100 0 1000 1100 1000 1011 0011 001[/col][/row]
[row][col]0.000000072[/col][col]0.000000060[/col][col]1[/col][col]1100 0100 0 1000 1100 1000 1011 0011 0011[/col][/row][/table]

Старший бит мантисы, 1100 0100 0 1000 1100 1000 1011 0011 0011, отбрасывается.
Результат: 1100 0100 - 0000 1100 - 1000 1011 - 0011 0011 или С4 0С 8В 33

Удачи!
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Форма ответа