Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.07.2017, 22:40   #1
anadell
Новичок
Джуниор
 
Регистрация: 07.07.2017
Сообщений: 2
По умолчанию Замена логической операции набором арифметических

Всезнающие форумчане, подскажите возможна ли замена логической операции набором арифметических.

Например:

($x & $y) записать как набор арифметических операций сложения и/или вычитания, где 0 <= $x <= 4294967296, 0 <= $y <= 4294967296.

Возможно ли это в принципе или нет?
anadell вне форума Ответить с цитированием
Старый 08.07.2017, 05:56   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Цитата:
как набор арифметических операций сложения и/или вычитания
если добавить сравнения(=) и условия (if then) и терпение(или циклы и умножение)
хотя умножение легко заменяется сложением
Код:
n:=1; if (a-n =a) + (b-n =b) =2 then r:=r+n; // и так по всем используемым двоичным разрядам(степеням двойки).
n:=2; ...
n:=4; ...
...
P.S. если конечно же 5=5 будет равно 1
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 08.07.2017 в 06:00.
evg_m вне форума Ответить с цитированием
Старый 08.07.2017, 08:14   #3
anadell
Новичок
Джуниор
 
Регистрация: 07.07.2017
Сообщений: 2
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
n:=1; if (a-n =a) + (b-n =b) =2 then r:=r+n; // и так по всем используемым двоичным разрядам(степеням двойки).
then r:=r+n - не подскажете, из этого выражения r первоначально чему равно
anadell вне форума Ответить с цитированием
Старый 10.07.2017, 11:24   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Код:
n:=4294967296; 
otvet:=0;
while n>0 do begin
 r:=0;
 if (a-n>0) then begin r:=r+1; a:=a-n; end;
 if (b-n>0) then begin r:=r+1; b:=b-n; end;
 if r=2 then otvet:=otvet+n;
 n:=n div 2; 
end;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Класс с заданным набором свойств пловец Помощь студентам 0 27.12.2016 01:21
Знак логической операции antoxann Паскаль, Turbo Pascal, PascalABC.NET 3 27.08.2011 18:59
Панель с набором компонетов [MoNAMur] Общие вопросы Delphi 3 18.06.2011 13:20
TImage робота с большым набором рисунков SPD Компоненты Delphi 1 13.01.2011 04:50
Ассемблер for windows. Осуществление логической операции Маришка_Курносова Помощь студентам 5 10.11.2010 12:56