|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.01.2023, 12:55 | #1 |
Пользователь
Регистрация: 14.01.2023
Сообщений: 38
|
Как сделать полностью правильными вычисления.
Выражение a*c*(a+b)-d вычисляется правильно только ,если при операциях над числами не получаются очень крупных чисел.
Переменные имеют следующий тип. Код:
Код:
a=110 b=54 c=63 d=59 Вот при таких значениях он считает уже неправильно. А при таких допустим считает всё правильно a=-11 b=12 c=-13 d=14 А полностью код выглядит так Код:
|
22.01.2023, 13:16 | #2 |
Пользователь
Регистрация: 14.01.2023
Сообщений: 38
|
Уже исправил спасибо.
|
22.01.2023, 16:14 | #3 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
У вас в выражении 3 умножения. При каждом умножении количество бит операндов удваивается. Таким образом после 2-х умножений вы получите результат размером в 32-бита записанный в dx:ax. Тогда вычитать d вам надо из пары регистров dx:ax с учетом переносов
Код:
Последний раз редактировалось macomics; 22.01.2023 в 16:47. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нужен совет - добавить в систему тестирования вопросы с несколькими правильными ответами | Razzer | PHP | 8 | 11.06.2018 21:12 |
Я не могу сделать программу полностью в Delphi Borland 7 | SuweR | Фриланс | 3 | 11.05.2017 17:46 |
[Delphi] Приложение для вычисления линейного уравнения вида ax+b=0. Всё готово, но требуется сделать "область отображения решения". Без понятия, как такое сделать. Помогите | NikazZz | Помощь студентам | 2 | 17.04.2017 04:02 |
Как сделать чтобы в WebBrowser полностью загружался документ ? | XazzzI | Помощь студентам | 1 | 13.06.2009 21:01 |