Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 13.01.2014, 00:08   #1 (permalink)
Demon11101995
Member
 
Регистрация: 14.12.2013
Сообщений: 18
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Необходимо выполнить следующие вычисления

x=0.01001000.110101
-x=1.10110111.001011
y=1.11100000.101110
-y=0.00011111.010010
необходимо выполнить следующие вычисления
x+y
x-y
-x+y
-x-y
Demon11101995 вне форума   Ответить с цитированием

Старый 13.01.2014, 00:08
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Советую вам обратить внимание на похожие обсуждения

Финансовые вычисления
Написать программу вычисления

Старый 13.01.2014, 00:17   #2 (permalink)
Николай_С
Радиоинженер
 
Аватар для Николай_С
 
Регистрация: 25.09.2012
Адрес: г.Дзержинск Нижегородской обл.
Сообщений: 25,301
Записей в дневнике: 7
Сказал(а) спасибо: 292
Поблагодарили 219 раз(а) в 70 сообщениях
Репутация: 110185
По умолчанию

Что значит "как сделать"?
Берется калькулятор Windows, переключаем его в инженерный вид и производим вычисления.
Николай_С вне форума   Ответить с цитированием
Старый 13.01.2014, 13:06   #3 (permalink)
Demon11101995
Member
 
Регистрация: 14.12.2013
Сообщений: 18
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

необходимо все подсчитать в дополнительном коде.
Demon11101995 вне форума   Ответить с цитированием
Старый 14.01.2014, 03:29   #4 (permalink)
Gruvi
VIP user
 
Аватар для Gruvi
 
Регистрация: 10.03.2011
Сообщений: 765
Записей в дневнике: 1
Сказал(а) спасибо: 10
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 3453
По умолчанию

если кратко расписать перевод в дополнительный код, то:
Цитата:
Переводим 12 из десятичной системы счисления в двоичную:
12=1100
Получили четырёхбитное число 1100. Так как наименьшее адресуемое количество информации составляет 1байт или 8 бит, добавляем спереди 0000, чтобы получить байт. Получаем 00001100.
Инвертируем все биты полученного байта: 11110011.
Прибавляем к полученному значению 1:
11110011
1
-----------------
11110100
Это и есть -12 в дополнительном коде в двоичной системе счисления или F4 в шестнадцатиричной
Gruvi вне форума   Ответить с цитированием
Старый 14.01.2014, 11:55   #5 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Ладно. Хотя, учитывая, мягко говоря, лаконичность ТС, IMHO переходящую в обычное хамство (ведь просим же давать четкую и развернутую формулировку задания, а не цедить по чайной ложке), не стоило бы тратить на него время, но может быть кому другому пригодится.
Разберем задачу.
Итак, дан дополнительный двоичный код чисел. Исходя из знакового разряда, определяем, что х - положителен, а у - отрицателен. Переведем исходные данные в десятичную систему и сосчитаем ожидаемые результаты (точкой в двоичной записи отделим знаковые разряды):
Код:
 x = 00.01001000110101 →  4661
-x = 01.10110111001011 → -4661
 y = 01.11100000101110 → -2002
-y = 00.00011111010010 →  2002
откуда (в десятичной системе):
Код:
  x + y =  2659
  x - y =  6663
 -x + y = -6663
 -x - y = -2659
Теперь считаем в дополнительном коде:
Код:
 х + у: 
00.01001000110101
01.11100000101110
-------------------
10.00101001100011
Отбрасывая старшую единицу знаковых разрядов и стоящие впереди нули, получаем положительное двоичное число
101001100011, соответствующее 2659.
Далее:
Код:
 х - у = х + (-у): 
00.01001000110101
00.00011111010010
-------------------
00.01101000000111
Или опять же положительное число
1101000000111, соответствующее 6663.
Продолжаем:
Код:
 -х + у: 
01.10110111001011
01.11100000101110
-------------------
11.10010111111001
После отбрасывания старшей единицы знакового разряда получаем отрицательное число в дополнительном коде (младший знаковый разряд равен 1). Чтобы перейти к прямому двоичному коду, нужно:
а) вычесть 1
б) инвертировать цифровые разряды
Результат этих манипуляций - число
1.01101000000111, соответствующее -6663.
И, наконец, последнее:
Код:
 -х - у = -х + (-у): 
01.10110111001011
00.00011111010010
-------------------
01.11010110011101
Вновь получили отрицательное число. Проделав те же операции, что в предыдущем случае, получаем в прямом двоичном коде
1.00101001100011, что соответствует -2659
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 07:52.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.