Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.04.2013, 06:49   #1
mike-kamik
Новичок
Джуниор
 
Регистрация: 19.04.2013
Сообщений: 3
По умолчанию Надо решить задачи по информатике!

1)Представить в памяти ЭВМ числа. Для представления целых чисел при выборе формата учитывать знак числа.
Число 0,553
Формат вещественного числа - Одинарный

Число 55
Формат целого числа в байтах - 1

Должны быть описаны и пояснены все необходимые преобразования. Результат должен быть представлен в разрядной сетке в соответствии с форматом числа.

2)Выполнить арифметические операции над двоичными числами с плавающей точкой в дополнительном коде: С=А+В. В таблице ниже приведены десятичные значения чисел А и В. С данными числами провести необходимые действия с пошаговой детализацией всех этапов. Вычисления и перевод чисел произвести с точностью до 5 знака после запятой.
A=-0,567, B=3,600.
Все выполненные действия должны быть детализированы и подробно описаны.

Заранее благодарен.
mike-kamik вне форума Ответить с цитированием
Старый 19.04.2013, 07:04   #2
mike-kamik
Новичок
Джуниор
 
Регистрация: 19.04.2013
Сообщений: 3
По умолчанию

Перевести в двоичную я могу,
а как нормализацию этих чисел делать и мантиссы какие то находить, вот это я не могу понять
mike-kamik вне форума Ответить с цитированием
Старый 19.04.2013, 07:40   #3
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Цитата:
Надо решить задачи по информатике!
+1 решить обязательно надо
-----------------------------------------------------------------------------------
What programming language do you need?
-----------------------------------------------------------------------------------
Цитата:
Представить в памяти ЭВМ числа
Нужен новый тип? Или просто на ASM'e самому сделать то, что уже делает проц?
-----------------------------------------------------------------------------------
тыц по теме: http://www.distedu.ru/mirror/_inform...rod.ru/c_2.htm
-----------------------------------------------------------------------------------
Цитата:
нормализацию этих чисел
было 0.012e-2
нормализация -> 1.2e-4
-----------------------------------------------------------------------------------
Цитата:
мантиссы
1.2e-4 красное - это мантисса

Последний раз редактировалось Sibedir; 19.04.2013 в 07:52.
Sibedir вне форума Ответить с цитированием
Старый 19.04.2013, 07:48   #4
mike-kamik
Новичок
Джуниор
 
Регистрация: 19.04.2013
Сообщений: 3
По умолчанию

ну вот допустим подобная задача

Выполнить арифметические операции над двоичными числами с плавающей точкой в дополнительном коде: С=А+В. В таблице ниже приведены десятичные значения чисел А и В. С данными числами провести необходимые действия с пошаговой детализацией всех этапов. Вычисления и перевод чисел произвести с точностью до 5 знака после запятой.
Для второго варианта значения равны:
A = 0,385
B = -2,45
Решение:
Преобразуем A:
0,385 * 2 = 0,77 => 0,0
0,77 * 2 = 1,54 => 0,01
0,54 * 2 = 1,08 => 0,011
0,08 * 2 = 0,16 => 0,0110
0,16 * 2 = 0,32 => 0,01100
итого А = 0,01100 = 0:11^1:1

Преобразуем B:
целая часть -10
дробная часть
0,45 * 2 = 0,9 => 0,0
0,9 * 2 = 1,8 => 0,01
0,8 * 2 = 1,6 => 0,011
0,6 * 2 = 1,2 => 0,0111
0,2 * 2 = 0,4 => 0,01110
итого B = -10,01110 = 1:1001110^0:10

Мантисса B = 1:0,1001110
обратный код 1:0,0110001
дополнительный код 1:0,0110010

Разность порядков:
d = 1:01 - 0:10 = 1:01 + 1:10 = (1:10 + 1:01)ок = (1:11 + 1:10)дк = 1:01
обратный код = 1:10
прямой код = 1:11


Порядок итога будет равен наибольшему значению порядка

Сумма C
0:000110
+1:011001
=1:011111
обратный код 1: 100000^0:10
прямой код 1:100001^0:10
итого 10,0001

Преобразуем к десятичному виду:
целая часть равна -2
дробная часть:
0,000010 = 0/2+0/4+0/8+1/16 = 0,0625
итого: -2,0625



Представить в памяти ЭВМ числа согласно варианту. Для представления целых чисел при выборе формата учитывать знак числа.
Для второго варианта 65,65 (двойной) и -56 (2 байта)
Решение:
Целая часть А = 1000001 (вычисляется так: 2 в 6 степени есть 64, тут на единицу больше)
дробная часть
0,65 * 2 = 1,3 => 0,1
0,3 * 2 = 0,6 => 0,10
0,6 * 2 = 1,2 => 0,101 ... 0,101000001
A = 1000001,101000001 = 0,1000001101000001*2111

Восьмой байт со знаками в старших битах
63 62 61 60 59 58 57 56
1 1 0 0 0 0 0 0
Порядок числа
49 48 47 46 45 44 43 42
0 0 1 1 1 0 0 0
Мантисса числа
41 40 39 38 37 36 35 34 33 32 31 30 29 28
0 0 1 1 0 1 0 0 0 0 0 1 0 0


B = -56 = 1:00111000 ок 1:11000111 дк 1:11001000

Старший байт
15 14 13 12 11 10 9 8
1 1 1 0 0 0 0 0
Младший байт
7 6 5 4 3 2 1 0
1 1 1 0 1 0 0 0
mike-kamik вне форума Ответить с цитированием
Старый 19.04.2013, 08:29   #5
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

А = -65,6510 = 1минус1.000001101001100110...мантиса1100степень

1000001101001100110 = 268902
1100 = 12

268902 / 2^12 = 65.64990234375

Последний раз редактировалось Sibedir; 19.04.2013 в 08:34.
Sibedir вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решается судьба.. Надо решить две задачи.Мне задачи, вам практика и мое уважение) romichj Общие вопросы C/C++ 3 30.03.2012 00:33
Сижу на экзамене! 2 задачи решить надо! Beelain007 Microsoft Office Excel 1 20.01.2012 13:15
Надо решить задачи das_gluck Паскаль, Turbo Pascal, PascalABC.NET 1 03.10.2011 20:52
Помогите решить задачи!!!!очень надо!!! Lazerboy Помощь студентам 7 20.05.2009 20:41