Битовые операции

В этой заметке мы изложим немного иначе суть статьи Н. Вирта Применение типа SET для управления регистрами.

Тип множества SET позволяет удобно осуществлять битовые операции для управления микроконтроллерами.

Пусть есть два множества s0 = {0, 1} и s1 = {0, 2}.

Сложение объединит биты:

s0 + s1 = {0, 1, 2}

Вычитание уберёт биты второго множества из первого:

s0 - s1 = {1}

Умножение вычислит общие биты в двух множествах (пересечение множеств):

s0 * s1 = {0}

А деление оставит сумму битов за вычетом общих (симметрическая разность):

s0 / s1 = {1, 2}

Для проверки, входит ли число в множество, предусмотрен специальный оператор IN.

IF 3 IN (s0 - s1) THEN DoSmth END

Такой код проверит, есть ли тройка в разности множеств s1 и s2, и запустит процедуру DoSmth в случае выполнения условия.