Эксклюзивный или между N наборами битов

Я реализую программу на Java, используя наборы битов, и я застрял в следующей операции:

Данные N наборов битов возвращают битовый набор с 0, если во всех битовых наборах их более 1, и 1 в противном случае

As Например, предположим, что у нас есть эти 3 набора:

  • 10010
  • 01011
  • 00111

  • 11100 ожидаемый результат

Для следующих наборов:

  • 10010
  • 01011
  • 00111
  • 10100
  • 00101

  • 01000 ожидаемый результат

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

Я хотел избежать дорогостоящего решения, заключающегося в проверке каждого бита в каждом наборе и ведении счетчика для каждой позиции...

Спасибо за любую помощь

Отредактируйте :, как просили некоторые люди, это является частью проекта, над которым я работаю. Я создаю генератор расписания, и в основном одно из мягких ограничений заключается в том, что ни у одного ученика не должно быть только 1 занятия в 1 день, поэтому эти наборы представляют посещающих учеников каждый час, и я хочу отфильтровать тех, у кого есть только 1 занятие.

5
задан Alex Lockwood 24 June 2012 в 00:12
поделиться