Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
1 / 1 / 0
Регистрация: 17.03.2010
Сообщений: 5
1

Арифметические опреции над целыми числами

18.03.2010, 22:47. Показов 954. Ответов 1
Метки нет (Все метки)

Привет )))
Народ, оч нужно решить задачку((( не как не могу сделать эту лабу... суть такова...
Нужно на паскале или на ассемблере написать программу, которая будет выполнять сложение над двумя целыми числами размером N байт, представленными в дополнительном коде.
Помогите пожалуйста, и желательно код с коментариями если возможно
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.03.2010, 22:47
Ответы с готовыми решениями:

Арифметические операции над двумя числами
Требуется вывести на экран два произвольных числа, и произвести с их помощью все возможные...

Арифметические действия над массивами
Имеется файл, в котором содержится размерность массива и его элементы. Вычислить: 1) произведение...

Арифметические действия над обыкновенными дробям
Можно ли реализовать в Delphi арифметическое действие над обыкновенными дробями и если можно то...

Работа с целыми числами
Народ подскажите такой вопрос . Есть натуральное число порядка N . Нужно поменять в этом числе...

1
2670 / 1934 / 422
Регистрация: 11.09.2009
Сообщений: 7,167
19.03.2010, 03:28 2
inga_almazik, "в дополнительном коде" - это, видимо, надо читать "отрицательные числа представлены в дополнительном коде".
Тогда N должно быть заранее определено, потому что самый старший бит самого старшего байта числа - это знак. В этом случае операции сложения и вычитания будут выполняться единообразно. Для этого и используется представление отрицательных чисел в дополнительном коде (инверсный +1).
На Паскале, на Ассемблере - не важно. Пиши алгоритм, как если бы складывал столбиком, где каждый байт - цифра. Не забудь про переносы и про то, что при сложении результат на один разряд (бит) длиннее слагаемых. В твоём случае можно удлинить результат на байт.

На Ассемблере этот пример написать проще, так как там в явном виде есть бит переноса.
Будет как-то так:
Assembler
1
2
3
4
5
6
7
8
A2, A1, A0 - первое число
В2, В1, В0 - второе число
D3, D2, D1, D0 - результат, исходно = 0
 
ADD A0,B0 -> D0  // сложить младшие байты слагаемых, установить бит переноса "C", результат в D0
ADDC A1,B1 -> D1 // сложить следующие байты слагаемых с учетом переноса, установить бит переноса "C", результат в D1
ADDC A2,B2 -> D2 // сложить следующие байты слагаемых с учетом переноса, установить бит переноса "C", результат в D2
ADDC D3,0 -> D3 // бит переноса в младшем бите байта D3. Он же знак результата.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.03.2010, 03:28

Заполнить файл f целыми числами
Заполнить файл f целыми числами полученными с помощью генерации случайных числе, из файла f...

Сравнение коэффициентов с целыми числами
Всем привет! Проблема следующая, раньше Бог отводил от работы с цифрами имеющими плавающую...

даны 2 текстовых файла с целыми числами.
даны 2 текстовых файла с целыми числами. Определить совпадают ли эти файлы?

Заполнить одномерный массив целыми числами
Заполнить одномерный массив целыми числами. Найти номер минимального элемента массива. Удвоить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.