0 / 0 / 0
Регистрация: 20.02.2017
Сообщений: 5
|
||||||
1 | ||||||
Умножение двух больших (~6 разрядов) десятичных чисел. TASM20.02.2017, 01:09. Показов 2160. Ответов 6
Метки нет (Все метки)
Добрый день!
Мучаюсь уже вторую неделю, первый раз пишу на ассемблере, полный ноль, просмотрела все похожие темы, безрезультатно Нужно написать программу, которая будет запрашивать два больших десятичных числа, перемножать их и выводить результат на экран. Итог моих мучений - программа умножает любое число лишь на одноразрядное число и правильно считает и выдает результат. Никак не получается реализовать умножение двух больших чисел Комментарии писала для себя т.к. вообще не шарю
0
|
20.02.2017, 01:09 | |
Ответы с готовыми решениями:
6
Деление/умножение больших чисел (TASM) Умножение двух десятичных чисел Умножение двух целых десятичных чисел с использованием команд сопроцессора Умножение двух больших чисел. |
Модератор
|
|
20.02.2017, 01:30 | 2 |
Вам бы структурировать программу - выделив процедуры.
У вас цель лабораторки - длинная арифметика, или просто результат стал ~6-разрядным?
0
|
0 / 0 / 0
Регистрация: 20.02.2017
Сообщений: 5
|
|
20.02.2017, 01:36 [ТС] | 3 |
Вернее это задание на 1ю лабу по ассемблеру. Задача: перемножение двух больших чисел. У препода уточнила, что "больших" это примерно 6-разрядных.
0
|
Модератор
|
|
20.02.2017, 01:41 | 4 |
А формат хранения - 6 байт по одному разряду на байт?
0
|
0 / 0 / 0
Регистрация: 20.02.2017
Сообщений: 5
|
|
20.02.2017, 01:49 [ТС] | 5 |
Не совсем понимаю вопрос. К 6 ничего не привязано. Это просто пример.
В коде 1 число - max 10 разрядов 2 число - max 10 разрядов результат - max 12 разрядов
0
|
Модератор
|
|
20.02.2017, 21:38 | 6 |
-------------------
Попробуйте сначала без ввода данных - вычислить из переменных. Потом сделайте вывод, а потом и ввод. Результат умножения - 12 разрядное число. Умножаете как обычно - в столбик. Результирующее число можно использовать для хранения промежуточных сумм. Добавлено через 1 минуту результат - max Добавлено через 53 секунды Уже поздно - завтра вечером посмотрю. Добавлено через 19 часов 44 минуты Как-то с наскока не получилось. Скоро будет суббота, возможно, это будет выходной - попробую ещё раз. Надеюсь, что смогу помочь.
0
|
6770 / 2739 / 384
Регистрация: 17.02.2013
Сообщений: 4,047
|
|||||||||||
25.02.2017, 01:17 | 7 | ||||||||||
Если у числа 6 десятичных разрядов, то оно заведомо влезет в 6 шестнадцатеричных разрядов. Перемножение двух чисел в 6 шестнадцатеричных разрядов каждое даст произведение, которое влезет в 12 шестнадцатеричных разрядов, то есть в 6 байт, то есть в 3 слова.
Отведем и под оба множителя и под результат три слова в порядке от младшего слова к старшему. Перемножаем:
Код
Результат: 0B87:0130 48 53 7F EA-5D 3F 9A 78 BC 00 00 00 HS..]?.x.... То есть 3F5DEA7F5348h
2
|
25.02.2017, 01:17 | |
25.02.2017, 01:17 | |
Помогаю со студенческими работами здесь
7
Умножение двух больших чисел Составить процедуру, которая для заданных чисел m,n определяет сумму десятичных разрядов этих чисел Умножение двоично-десятичных чисел TASM: умножение чисел Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |