Существует распространенный способ хранения нескольких значений в одной переменной с использованием битовой маски. Например, если у пользователя есть права на чтение, запись и выполнение элемента, это можно преобразовать в одно число, произнеся read = 4 (2^2), write = 2 (2^1), execute = 1 (2^0)
, а затем сложив их вместе, получить 7.
Я использую эту технику в нескольких веб-приложениях, где я обычно сохраняю переменную в поле и присваиваю ей тип MEDIUMINT или что-то еще, в зависимости от количества различных значений.
Что меня интересует, так это то, существует ли практический предел количества значений, которые вы можете хранить таким образом? Например, если число было больше 64, вы больше не могли использовать (64-битные) целые числа. Если бы это было так, что бы вы использовали? Как это повлияет на логику вашей программы (т.е. сможете ли вы по-прежнему использовать побитовые сравнения)?
Я знаю, что как только вы начнете получать действительно большие наборы значений, оптимальным решением будет другой метод, но меня интересуют границы этого метода.