Форум программистов, компьютерный форум, киберфорум
Assembler: математика, вычисления
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
4820 / 2286 / 287
Регистрация: 01.03.2013
Сообщений: 5,970
Записей в блоге: 29
1

Сложение через логические операции

02.01.2014, 03:35. Показов 3609. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Знакомил сегодня сына с системой команд процессора, и озадачил он меня следующим вопросом - можно ли реализовать операцию сложения через только логические операции, сдвиги и условные переходы? Без применения инкремента и декремента, естественно. Посидели, подумали с ним, придумали один вариант, который я только что протестировал и исправил одну ошибку. Интересно, как бы вы реализовали такую функцию? Наш код ниже, написан на С, но это не принципиально - ассемблер на разных платформах порой сильно различается, но простейшие операции присутствуют и одинаковы на большинстве платформ (хотя мы ориентировались на систему команд AVR-Tiny).
C
1
2
3
4
5
6
int SumLog(int a, int b)
{
   int c = a & b, d = a ^ b, e;
   while ( c ^ (e = c | ((c<<1) & d)) ) c = e;
   return (c<<1) ^ d;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.01.2014, 03:35
Ответы с готовыми решениями:

Логические операции
С помощью логических операций реализуйте запись битов в данной ячейки памяти, размером в 2 байта, в...

Логические операции
Нужно посчитать выражения F = Y*96+Х-16 где: X = 185D (un int) Y = AA (un char) F =...

Логические операции
Как с помощью логический операций, вывести те элементы массива, которые меньше 1? Мне бы сам...

Арифметико-логические операции
(X AND Y XOR NOT Z) SHR 3

1
Ушел с форума
Автор FAQ
16338 / 7659 / 1075
Регистрация: 11.11.2010
Сообщений: 13,696
02.01.2014, 03:53 2
Цитата Сообщение от _Ivana Посмотреть сообщение
можно ли реализовать операцию сложения через только логические операции, сдвиги и условные переходы?
_Ivana,
Электронный учебник https://www.cyberforum.ru/cgi-bin/latex.cgi?\rightarrowГЛАВА 10. АРИФМЕТИЧЕСКИЕ КОМАНДЫhttps://www.cyberforum.ru/cgi-bin/latex.cgi?\rightarrowСложение чисел А и B в несколько этапов
2
02.01.2014, 03:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.01.2014, 03:53
Помогаю со студенческими работами здесь

Логические операции на асме.
Дан массив из 5 байт. Рассматривая его как массив из 8 пятиразрядных слов, найти “исключающее или”...

Арифметические и логические операции
Составить программу решения выражения на языке ассемблера. Значения переменных должны быть...

Логические операции в ассемблере
Возникла необходимость работы с логическими операциями . Есть такое выражение : M XOR D OR Р ...

Логические операции в ассемблере
Логика в ассемблере для меня тёмный лес, извиняюсь. Задание: объявите переменную Х как двойное...

Логические операции в Tasm
Помогите с решением задачи. Дан массив из 7 байт. Рассматривая его, как массив из восьми семибитных...

Битовые и логические операции с массивом
Дан массив из 9 знаковых байтов.Биты отрицательных чисел сдвинуть арифметически вправо на 2...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru