Tarja
Новичок
|
Есть задание: надо перевести заданные числа в двоично-десятичный код, потом сформировать для них прямой и дополнительный коды, а потом найти значения С1, С2, С3, С4, определяемые выражениями: С1 = А+В С2 = А-В, С3 = В-А, С4 = -А-В. Расскажите пожалуйста, как производить сложение и вычитание в дополнительном двоично-десятичном коде . У меня есть: [A]пк = 0. 0100 0101 0101 0110; [A]дк = 0. 0100 0101 0101 0110; [B ]пк = 1. 0110 1001 1001; [B ]дк = 1. 0011 0000 0000. Основная проблема у меня, конечно же, в том, что вычисления должны производиться не в двоичной системе считления, а в двоично-десятичной, а там, воообще-то, отличается. Вот. Расскажите, пожалуйста, как справиться с этим заданием. Заранее благодарна за помощь. (Сообщение отредактировал Tarja 16 янв. 2009 2:40)
|
Всего сообщений: 17 | Присоединился: январь 2009 | Отправлено: 16 янв. 2009 2:39 | IP
|
|
Tarja
Новичок
|
Помогите пожалуйста мне с этим примером... Вообще нет никаких вариантов, и совсем не знаю как делать. Помогите и объясните, пожалуйста...
|
Всего сообщений: 17 | Присоединился: январь 2009 | Отправлено: 16 янв. 2009 23:13 | IP
|
|
Old
Долгожитель
|
Tarja, мне непонятны условия Вашей задачи, что такое [A]пк и др. Уточните.
|
Всего сообщений: 285 | Присоединился: ноябрь 2006 | Отправлено: 17 янв. 2009 13:48 | IP
|
|
Tarja
Новичок
|
С этим вопросом вроде бы разобралась, Old, хотя и не смогли помочь, всё равно спасибо, что откликнулись (Сообщение отредактировал Tarja 18 янв. 2009 16:34)
|
Всего сообщений: 17 | Присоединился: январь 2009 | Отправлено: 17 янв. 2009 17:03 | IP
|
|
KatenaN
Новичок
|
я сначала нашла [-A]дк и [-В]дк. а затем складывала соответсвующие числа. а по поводу правил сложение. Пример Найти сумму двух десятичных чисел с использованием двоично-десятичной системы счисления: A = D + C, где D= 3927; C= 4856. Решение Составляем двоично-десятичную запись для чисел D и C: D =3927 = 0011 1001 0010 0111: C = 4856 =0100 1000 0101 0110. Найти значение А можно, реализовав следующую последовательность операций из двоичного сложения и операции коррекции: * ** 0011 1001 0010 0111 - D + 0100 1000 0101 0110 - C 1000 0001 0111 1101 - двоичная сумма + 0110 0110 - коррекция 1000 0111 1000 0011 - двоично-десятичная сумма Для получения двоично-десятичной суммы A на основании результата сложения операндов по правилам двоичной арифметики необходимо добавить шестерку (0110) в те тетрады, из которых был перенос. В данном примере это вторая тетрада (отмечена *). Необходимость такой коррекции обусловливается тем, что перенос, сформированный по правилам двоичного суммирования, унес из тетрады шестнадцать, а для десятичного сложения перенос должен был унести десять, т.е. перенос, сформированный по правилам двоичной арифметики, унес лишнюю шестерку. Кроме этого шестерка добавляется в те тетрады, в которых получено значение, большее девяти. Такая коррекция обуславливается тем, что по правилам десятичной арифметики в таких тетрадах должен быть выработан перенос и, чтобы его выработать по правилам двоичной арифметики, в тетраду нужно добавить шестерку. Для рассмотренного такой тетрадой является и четвертая тетрада (отмечена **). это из лекции
|
Всего сообщений: 4 | Присоединился: январь 2009 | Отправлено: 24 янв. 2009 23:17 | IP
|
|
KatenaN
Новичок
|
только вот точно не знаю как быть с цифрами перед точкой. вроде если слаживать, должно получаться. хотя у мну вот возника загвоздка с ними
|
Всего сообщений: 4 | Присоединился: январь 2009 | Отправлено: 24 янв. 2009 23:42 | IP
|
|
KatenaN
Новичок
|
помогите плиз. сложение -99 и 6078 в дополнительном коде. 1. 1001 1001 0000 0001 0. 0110 0000 0111 1000 1. 1111 1001 0111 1001 вроде все сошлось, кроме первой цифры и 1 перед точкой
|
Всего сообщений: 4 | Присоединился: январь 2009 | Отправлено: 25 янв. 2009 0:46 | IP
|
|
Tarja
Новичок
|
KatenaN, не сходится, потому что в первой тетраде у тебя получилось число большее 9, а это противоречит правилам двоично-десятичной арифметики (надо постоянно следить за переполнением, в каждой тетраде должно стоять число не большее 9). Если такое переполнение у тебя возникает -- надо от значения полученной тетрады отнять 1010(в 2-чной СС) = 10(в 10-чной СС), то есть: 1111 - 1010 ==== 0101, то есть 5 (10 СС). И единицу переносим в страший разряд -- то есть в знаковый. Получаем положительный результат: 0. 0101 1001 0111 1001 В переводе это равно 5979, что и должно было получиться
|
Всего сообщений: 17 | Присоединился: январь 2009 | Отправлено: 11 фев. 2009 21:26 | IP
|
|
ew6is
Новичок
|
Нужна помощь: A=6078, B=2829 найти С=-A-B A[пк]=A[дк]=0.0110 0000 0111 1000 -A[дк]=1.1001 1111 1000 1000 B[пк]=B[дк]=0.0010 1000 0010 1001 -B[дк]=1.1101 0111 1101 0111 C=-A-B=-A+(-B) 1.1001 1111 1000 1000 + 1.1101 0111 1101 0111 --------------------------------- 11.0111 0111 0101 1111 Какие необходимо делать корректировки, что бы получить результат?
|
Всего сообщений: 1 | Присоединился: май 2009 | Отправлено: 24 мая 2009 19:45 | IP
|
|
ArsBsuir
Новичок
|
Добрый день. Я все с тем же, старым-добрым вопросом. Помогите, пожалуйста, понять: Вычислить С1 = А + В С2 = А – В = A + (–B) С3 = В – А = (–A) + B С4 = –А – В = (–A) + (–B) при выполнении, А и В необходимо представить в двоично-десятичной системе, сформировать для них прямые коды и, используя обратный код вычислить значения С1, С2, С3, С4. Результат представить в прямом коде. А(dec) = – 3628 B(dec) = – 3390. А(2-10) = – 0011 0110 0010 1000 В(2-10) = – 0011 0011 1001 0000 А(пк) = 1.0011 0110 0010 1000 А(ок) = 1.0110 0011 0111 0001 –А(пк) = 0.0011 0110 0010 1000 –А(ок) = 0.0011 0110 0010 1000 В(пк) = 1.0011 0011 1001 0000 В(ок) = 1.0110 0110 0000 1001 –В(пк) = 0.0011 0011 1001 0000 –В(ок) = 0.0011 0011 1001 0000 А вот дальше что-то запутался. Помогите найти С1, С2, С3, С4 суммированием в обратном коде с представлением результата в прямом. (Сообщение отредактировал ArsBsuir 22 сен. 2009 13:49)
|
Всего сообщений: 1 | Присоединился: сентябрь 2009 | Отправлено: 22 сен. 2009 14:47 | IP
|
|
|