7 / 7 / 5
Регистрация: 05.04.2012
Сообщений: 149
|
||||||
1 | ||||||
Умножение двоичных чисел08.06.2012, 21:02. Показов 10952. Ответов 11
Метки нет (Все метки)
Прошу помощи.
Исходные данные: Количество разрядов: 4 Алгоритм умножения двоичных чисел: на один разряд множителя, начиная со старших разрядов множителя, со сдвигом частного произведения вправо. Вопросы такие: 1) Как сделать,чтобы при сложении двух единиц,единица переносилась в след.разряд? 2) Правильно ли я сделал сам каркас кода? Не много ли переменных задействовано,просто пока я не представляю как можно сделать по другому,поэтому мне кажется,что я наворотил тут много лишнего и можно всё сделать проще
0
|
08.06.2012, 21:02 | |
Ответы с готовыми решениями:
11
Умножение двоичных чисел Умножение и деление двоичных чисел Деление двоичных чисел Деление двоичных чисел |
Неадекват
1492 / 1230 / 246
Регистрация: 02.04.2010
Сообщений: 2,789
|
||||||
09.06.2012, 02:31 | 2 | |||||
Может я не совсем понял вопрос. Но побитовое умножение можно сделать так.
0
|
7 / 7 / 5
Регистрация: 05.04.2012
Сообщений: 149
|
|
09.06.2012, 09:39 [ТС] | 3 |
Спасибо,но этот код я не понимаю.Что тут куда? И у меня не запускается даже.
Просто я ещё новичок в c#.
0
|
Неадекват
1492 / 1230 / 246
Регистрация: 02.04.2010
Сообщений: 2,789
|
||||||
09.06.2012, 12:17 | 4 | |||||
Может быть, так понятнее будет. BitArray класс специально предназначенный для битовых операций.
1
|
Заблокирован
|
|
09.06.2012, 13:31 | 5 |
1
|
7 / 7 / 5
Регистрация: 05.04.2012
Сообщений: 149
|
|
09.06.2012, 15:10 [ТС] | 6 |
Класс! Спасибо,буду разбираться.
0
|
7 / 7 / 5
Регистрация: 05.04.2012
Сообщений: 149
|
||||||
29.06.2012, 12:54 [ТС] | 7 | |||||
Люди,подскажите.Что делаю не так или чего не хватает? Не могу сложить два массива.
0
|
267 / 257 / 43
Регистрация: 18.03.2012
Сообщений: 506
|
|||||||||||
29.06.2012, 14:27 | 8 | ||||||||||
1
|
7 / 7 / 5
Регистрация: 05.04.2012
Сообщений: 149
|
||||||
30.06.2012, 11:00 [ТС] | 9 | |||||
Lasur
Я никак не могу разобраться с этим: mat3[i + 2]-Что даёт эта двойка? Просто не хочу тупо использовать ваш код,хочу сам разобраться и сделать заново ,но блин не получается Если я у себя делаю так:
Что касается переноса разрядов,то это потом,хочу для начала их просто сложить.
0
|
267 / 257 / 43
Регистрация: 18.03.2012
Сообщений: 506
|
||||||||||||||||
30.06.2012, 12:20 | 10 | |||||||||||||||
2-разница длин между массивами mat3 и mat1(mat2) В следствии разных длин нельзя просто идти по всем индексам mat3 и складывать числа mat1 и mat2 с этими индексами - возникнет выход за пределы массива.
В вашем цикле:
Самый простой вариант (но не самый быстрый) сделать сложение независимым от размеров массивов - привести все массивы к одной длине. То есть, например, для сложения массивов [1, 1, 1, 0, 1] и [1, 1, 1]: 1) создать новый массив размером на один больше чем максимальный из размеров (на случай переноса разрядов) - 6 в нашем случае 2) оба массива привести к размеру нового массива, получим [1, 0, 1, 0, 1] ---> [0, 1, 1, 1, 0, 1] (числа 010101 и 10101 равны) [1, 1, 1] ---> [0, 0, 0, 1, 1, 1] (числа 000111 и 111 равны) 3) сложить поиндексно [0, 1, 1, 1, 0, 1] + [0, 0, 0, 1, 1, 1] = [0, 1, 0, 2, 1, 2] 4) выполнить перенос [0, 1, 1, 2, 1, 2] ---> [0, 1, 1, 2, 2, 0] ---> [0, 1, 1, 3, 0, 0] ---> [0, 1, 2, 1, 0, 0] ---> [0, 2, 0, 1, 0, 0] ---> [1, 0, 0, 1, 0, 0] 5) вывести 100100
0
|
7 / 7 / 5
Регистрация: 05.04.2012
Сообщений: 149
|
|
30.06.2012, 12:38 [ТС] | 11 |
Lasur
Спасибо огромное! Так всё подробно! Я так понимаю,что,если перевести с цифр на вещи, я хотел сделать нечто подобное?
0
|
267 / 257 / 43
Регистрация: 18.03.2012
Сообщений: 506
|
|
30.06.2012, 13:08 | 12 |
Как я понял, вы хотите
как два числа в битовом представлении.
А рисунок, где стрелки от двух массивов идут в один, может обозначать что угодно: от объединения этих двух массивов до рандомной перестановки их элементов для получения нового массива.
0
|
30.06.2012, 13:08 | |
30.06.2012, 13:08 | |
Помогаю со студенческими работами здесь
12
Сложение двоичных чисел Сложение двоичных чисел Калькулятор двоичных чисел Добавление двоичных чисел вручную Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |