![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
olven |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 18 Пол: Женский Репутация: ![]() ![]() ![]() |
Программа умножает двоичные числа в дополнительном коде. Но умножает неправильно. Помогите пожалуйста найти проблему
var |
![]() ![]() |
Федосеев Павел |
![]()
Сообщение
#2
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 298 Пол: Мужской Реальное имя: Федосеев Павел Репутация: ![]() ![]() ![]() |
Я не могу понять смысл задания.
Как прикрутить дополнительный код? ------------------------------------------------------------------------ Может быть речь идёт о типе LongInt? Т.е. всё - и мнгожители и произведение умещается в тип LongInt? Тогда решение задания получается таким: 1. Ввод 1-го числа в виде строки s1. Далее просто преобразование строки в число LongInt (забываем про встроенные возможности языка). 2. Преобразование s1 в беззнаковое (пока) число c1 (типа LongInt) и знак sign1 (boolean) 3. Если c1 должно быть отрицательным, то c1:=(NOT c1)+1. Вернее здесь будет чуть иначе, но это детали. Тоже самое и со вторым числом. Потом умножаем c1 на c2 и выводим результат средствами языка (writeln). Кажется, что я подменяю условие... |
olven |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 18 Пол: Женский Репутация: ![]() ![]() ![]() |
Я не могу понять смысл задания. Как прикрутить дополнительный код? ------------------------------------------------------------------------ Может быть речь идёт о типе LongInt? Т.е. всё - и мнгожители и произведение умещается в тип LongInt? Тогда решение задания получается таким: 1. Ввод 1-го числа в виде строки s1. Далее просто преобразование строки в число LongInt (забываем про встроенные возможности языка). 2. Преобразование s1 в беззнаковое (пока) число c1 (типа LongInt) и знак sign1 (boolean) 3. Если c1 должно быть отрицательным, то c1:=(NOT c1)+1. Вернее здесь будет чуть иначе, но это детали. Тоже самое и со вторым числом. Потом умножаем c1 на c2 и выводим результат средствами языка (writeln). Кажется, что я подменяю условие... там нет ограничений каким способом. главное чтобы выполнялись условия, то что ты написал это просто мой метод я пыталась решить это так, но для длинных чисел он не работает, из твоих слов поняла, что нужно писать по другому, представлять формат в виде строк или массива. но как это делают я без понятия. пытаюсь разобраться |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 18:55 |