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