Mysql 大数的按位比较

Mysql 大数的按位比较,mysql,bitwise-operators,largenumber,Mysql,Bitwise Operators,Largenumber,研究使用逐位比较的可能性,以评估从可能的100个选项中选择了哪些选项 现在作为一个整数,所有选项的选择都需要存储一个2到99 6E29幂的整数。远远超出了约9E18的限制 与dir权限一样,1=读取,2=写入,4=执行,1+2+4=7=完全访问 我想知道100个选项中,哪些是用同样的方法选择的 非常感谢您的任何建议/提示 NB存储将是mysql -编辑- 这里的最终目标是简化对用户可以使用何种货币付款的检查 将值指定给货币,如下所示: Currency OptVal GBP 1 USD

研究使用逐位比较的可能性,以评估从可能的100个选项中选择了哪些选项

现在作为一个整数,所有选项的选择都需要存储一个2到99 6E29幂的整数。远远超出了约9E18的限制

与dir权限一样,1=读取,2=写入,4=执行,1+2+4=7=完全访问

我想知道100个选项中,哪些是用同样的方法选择的

非常感谢您的任何建议/提示

NB存储将是mysql

-编辑-

这里的最终目标是简化对用户可以使用何种货币付款的检查

将值指定给货币,如下所示:

Currency OptVal
GBP      1
USD      2
EUR      4
AUD      8
CAD      16
ZAR      32
因此,有很多种货币,我相信通过加密货币会产生更多的货币

然后,使用位运算符检查用户拥有的货币会很方便

因此,如果用户的货币设置为3,则只能使用英镑和美元。 5英镑和欧元 63英镑、美元、欧元、澳元、加元、南非兰特

等等——希望这能澄清目标


问题在于,当您拥有>100种货币时,以最简单的形式存储该整数。每个选项都需要一个值2En-1,对于大n,这个数字非常大,不可存储为整数BIGINT Max值为18446744073709551615

您需要建议。不要这样做

MySQL提供了布尔数据类型,便于标记。每个值都会占用一个字节,因此存储空间将大于使用位的存储空间

MySQL还提供了位数据类型,您可以将最多64位数据放在一起。你可以读到他们

使用内置数据类型是正确的做法。它们保护您不受服务器更改、操作系统升级以及应用程序和服务器具有不同端点的可能性的影响。如果您不知道这是什么,那么您绝对不应该考虑一些小动作


好消息是,您需要执行的操作有多种数据类型。

100位可以用4 x 32位整数表示。基本上,选项数/32是表示该选项所需的整数数?比较是在4个整数中的任何一个上设置的位?