2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Задачка на побитные операции
Сообщение17.07.2023, 22:07 
Аватара пользователя


05/06/08
477
Определена функция от трех битов такая, что если два и более бита равны единице, то и значение функции единица. И ноль в противном случае.
Нужно реализовать такую функцию только с использованием побитных операций. У меня получилось пять операций: три попарных "и" и две "или".
Есть ли более быстрая реализация?

 Профиль  
                  
 
 Re: Задачка на побитные операции
Сообщение17.07.2023, 22:14 
Заслуженный участник
Аватара пользователя


23/07/08
10909
Crna Gora
MGM в сообщении #1601407 писал(а):
Нужно реализовать такую функцию только с использованием побитных операций. У меня получилось пять операций: три попарных "и" и две "или".
Скорее всего, Вы понимаете побитовые операции не так, как я, иначе я вообще не понимаю, как это можно сделать.

 Профиль  
                  
 
 Re: Задачка на побитные операции
Сообщение17.07.2023, 22:27 
Аватара пользователя


05/06/08
477
Побитовые операции мы понимает одинаково. Просто вы понимаете такие операции для "слов" содержащих более одного бита. У меня переменные однобитные (или однобитовые, не знаю, как правильно).

 Профиль  
                  
 
 Re: Задачка на побитные операции
Сообщение17.07.2023, 22:36 
Заслуженный участник
Аватара пользователя


01/09/13
4656
MGM в сообщении #1601407 писал(а):
с использованием побитных операций.

каких именно?

 Профиль  
                  
 
 Re: Задачка на побитные операции
Сообщение17.07.2023, 22:46 


07/06/17
1126
MGM в сообщении #1601407 писал(а):
Есть ли более быстрая реализация?

С меньшим числом операций? Есть.
$x_1x_2 \vee x_3(x_1\vee x_2)$

 Профиль  
                  
 
 Re: Задачка на побитные операции
Сообщение17.07.2023, 22:57 
Аватара пользователя


05/06/08
477
Booker48 в сообщении #1601418 писал(а):
MGM в сообщении #1601407 писал(а):
Есть ли более быстрая реализация?

С меньшим числом операций? Есть.
$x_1x_2 \vee x_3(x_1\vee x_2)$

Спасибо. То есть четыре операции?
А три никак?

 Профиль  
                  
 
 Re: Задачка на побитные операции
Сообщение17.07.2023, 23:01 


07/06/17
1126
MGM в сообщении #1601422 писал(а):
А три никак?

Если использовать только И, ИЛИ и НЕ, то никак.

 Профиль  
                  
 
 Re: Задачка на побитные операции
Сообщение17.07.2023, 23:04 
Заслуженный участник
Аватара пользователя


23/07/08
10909
Crna Gora
Такая тема уже была на форуме. Я там писал:
svv в сообщении #1552748 писал(а):
В точности эта функция в полном одноразрядном сумматоре по двум операндам $x,y$ и переносу $z$ вычисляет следующий перенос.
Так что можете поискать, не реализовано ли где-нибудь вычисление переноса с помощью И, ИЛИ, НЕ проще. :-) (Говорю сразу, что нет.)

 Профиль  
                  
 
 Re: Задачка на побитные операции
Сообщение17.07.2023, 23:05 
Аватара пользователя


05/06/08
477
А галочка $\vee$, это "или"?
Кстати, иногда так определяют min. А значит эквивалент "и".
Странно, но смысл противоположный.

 Профиль  
                  
 
 Re: Задачка на побитные операции
Сообщение17.07.2023, 23:08 
Заслуженный участник
Аватара пользователя


23/07/08
10909
Crna Gora
Да, это "или".

 Профиль  
                  
 
 Re: Задачка на побитные операции
Сообщение17.07.2023, 23:09 
Аватара пользователя


05/06/08
477
svv в сообщении #1601426 писал(а):
Такая тема уже была на форуме. Я там писал:
svv в сообщении #1552748 писал(а):
В точности эта функция в полном одноразрядном сумматоре по двум операндам $x,y$ и переносу $z$ вычисляет следующий перенос.
Так что можете поискать, не реализовано ли где-нибудь вычисление переноса с помощью И, ИЛИ, НЕ проще. :-) (Говорю сразу, что нет.)

Только значение самого бита получается через исключающее или.

 Профиль  
                  
 
 Re: Задачка на побитные операции
Сообщение17.07.2023, 23:12 
Заслуженный участник
Аватара пользователя


23/07/08
10909
Crna Gora
Речь не о бите суммы (там да, лучше всего XOR, если его разрешено использовать), а о бите переноса, который определяет, нужно ли переносить единицу в следующий разряд.

 Профиль  
                  
 
 Re: Задачка на побитные операции
Сообщение18.07.2023, 00:24 
Аватара пользователя


05/06/08
477
svv в сообщении #1601433 писал(а):
Речь не о бите суммы (там да, лучше всего XOR, если его разрешено использовать), а о бите переноса, который определяет, нужно ли переносить единицу в следующий разряд.

Это я понял. Потому как именно буфер переноса меня и интересует. Не знаю зачем.
А вот XOR почему-то в Булеву алгебру не включают. Проблемы с дистрибутивностью?

 Профиль  
                  
 
 Re: Задачка на побитные операции
Сообщение18.07.2023, 00:56 
Заслуженный участник
Аватара пользователя


23/07/08
10909
Crna Gora
MGM в сообщении #1601450 писал(а):
А вот XOR почему-то в Булеву алгебру не включают. Проблемы с дистрибутивностью?
Наверное, потому, что там эта операция — производная, выражается через исходные. Это не значит, что она "под запретом", никто не мешает изучать её свойства.

А вот в поле Галуа $\mathbb F_2$ сложение по модулю 2 $\oplus$ играет роль той операции "сложения", которая требуется самим определением поля.
Поле из двух элементов
Ну, а в поле проблем с дистрибутивностью точно нет: $(a\oplus b)\cdot c = (a\cdot c)\oplus (b\cdot c)$.

 Профиль  
                  
 
 Re: Задачка на побитные операции
Сообщение18.07.2023, 01:04 
Заслуженный участник


31/12/05
1517
Кстати, если нужны и бит суммы, и бит переноса, и разрешается XOR, то хватает пяти операций.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 21 ]  На страницу 1, 2  След.

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: YandexBot [bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group