IPB

Здравствуйте, гость ( Вход | Регистрация )

> Битовые операции
julia_lisha
сообщение 5.2.2010, 12:36
Сообщение #1


Студент
**

Группа: Продвинутые
Сообщений: 147
Регистрация: 19.12.2009
Из: Omsk
Город: omsk
Учебное заведение: ОмГУ



Помогите пожалуйста, не понимаю задание....
Заданы два числа <=16.
Найти их произведение и с помощью битовых операций
записать оба множителя и их произведение одно за другим
в ячейку памяти размером в два байта без пропуска битов.

Помогите с алгоритмом....не понимаю с чего необходимо начать....
Спасибо, VIP)
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
Евгений М.
сообщение 7.2.2010, 10:03
Сообщение #2


Студент
**

Группа: Продвинутые
Сообщений: 199
Регистрация: 6.11.2009
Город: Уфа
Вы: студент



Цитата
это необходимо реализовать массив как Аi*Bi, так?

(IMG:style_emoticons/default/mad.gif) Не понимаю ваш вопрос. На языке C должно быть так: A[0]-первый множитель, A[1]-второй, A[2]-произведение, т.е. A[2]=A[0]*A[1]

Вообщем намеками и примерами не смог дать понять идею алгоритма... (IMG:style_emoticons/default/sad.gif)
Ну ладно, придется обьяснить.
Имеем числа A и B представленые в двоичной системе. Представим число B=R3*1000+R2*100+R1*10+R0
где R3,R2,R1,R0 - цифры числа B третьего, второго, первого, нулевого разряда соответственно.
Тогда A*B=A*(R3*1000+R2*100+R1*10+R0)=A*R3*1000+A*R2*100+A*R1*10+A*R0=C3+C2+C1+C0, где Сn=A*Rn*10^n
Теперь разберемся с Rn. Он может быть равен либо 1 либо 0, тогда число Cx=A*10^x либо Cx=0
Умножение на 10^n можно реализовать с помошью команды SHL или ROL (какой из них точно не помню).
Напоминаю, что все представленые выше числа (кроме индексов) записаны в 2-ичной системе счисления.
Вопросы? (IMG:style_emoticons/default/biggrin.gif)
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме
julia_lisha   Битовые операции   5.2.2010, 12:36
Евгений М.   Подсказка: Для начала откройте 4 ячейки с памятью....   5.2.2010, 13:52
julia_lisha   Это переменные объявить :blush: или что сделать?)   5.2.2010, 14:59
julia_lisha   #include "stdafx.h" #include "iostream...   5.2.2010, 16:46
julia_lisha   С алгоритмической точки зрения понятия “переменная...   5.2.2010, 17:32
Евгений М.   Ой, а я подумал вам нужно написать программу 100% ...   6.2.2010, 5:44
julia_lisha   :blush: это необходимо реализовать массив как Аi...   6.2.2010, 16:33
Евгений М.   :angry: Не понимаю ваш вопрос. На языке C должно...   7.2.2010, 10:03
julia_lisha   хм.... вроде как у меня по заданию так: 1. перемно...   7.2.2010, 10:51
Inspektor   хм.... вроде как у меня по заданию так: 1. перемн...   7.2.2010, 11:09
julia_lisha   MOV ax,[a] SHL ax,4 OR ax,[b] MOV ...   7.2.2010, 11:25
julia_lisha   #include "stdafx.h" #include "iostream...   7.2.2010, 13:51
Inspektor   INT8 rez[2]={0,0}; __asm { mov bx,...   7.2.2010, 19:21
julia_lisha   большое спасибо java script:emoticon(':blush:...   8.2.2010, 15:37
Inspektor   и это dw надо как связять как то с результатом.......   8.2.2010, 23:17
julia_lisha   Результат у нас- это два байта в ячейке памяти по...   9.2.2010, 11:11


Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия Сейчас: 25.5.2025, 23:42

Книжки в помощь: "Сборник заданий по высшей математике" Кузнецов Л.А., "Сборник заданий по высшей математике" Чудесенко В.Ф., "Индивидуальные задания по высшей математике" Рябушко А.П., и другие.




Зеркало сайта Решебник.Ру - reshebnik.org.ru