Поиск оператора для трех различных значений с помощью побитовых операцийC++

Программы на C++. Форум разработчиков
Anonymous
Поиск оператора для трех различных значений с помощью побитовых операций

Сообщение Anonymous »

Рассмотрим набор {A,B,C} и оператор op, определенные в следующей таблице

Код: Выделить всё

A op A = A
A op B = A
A op C = A
B op A = A
B op B = B
B op C = C
C op A = A
C op B = C
C op C = B
Я хотел бы закодировать A, и C с битовыми значениями, а затем определите оператор op с помощью некоторых побитовых операций. Например, можно установить

Код: Выделить всё

constexpr auto A = 0b001;
constexpr auto B = 0b010;
constexpr auto C = 0b100;
тогда можно (эмпирически) определить оператор по

Код: Выделить всё

auto op (auto x, auto y)  {
return ((x&A) | (y&A)) | (x&B & y&B) | ((x&C & y&C)>>1) | ((x

Подробнее здесь: [url]https://stackoverflow.com/questions/79855874/finding-an-operator-for-3-distinct-values-with-bitwise-operations[/url]

Вернуться в «C++»