有一种通用的方法,可以使用位掩码将多个值存储在一个变量中。例如,如果用户对某项具有读,写和执行特权,则可以通过说出read = 4 (2^2), write = 2 (2^1), execute = 1 (2^0)
将其转换为单个数字,然后将它们加在一起得到7。
我在几种Web应用程序中使用了此技术,通常将变量存储到一个字段中,并根据不同值的数量为它提供MEDIUMINT或其他类型。
我感兴趣的是,这样存储的值数量是否有实际限制?例如,如果数字超过64,则不能再使用(64位)整数。如果是这样,您将使用什么?它会如何影响您的程序逻辑(即:您是否仍可以使用按位比较)?
我知道一旦您开始获得非常多的值集,一种不同的方法将是最佳解决方案,但是我对这种方法的边界很感兴趣。