研究使用按位比较的可能性,以评估选择了哪些选项,从中选出了可能的100个选项。
现在,作为一个整数,所有选项的选择都需要将整数2存储到99 (6E29)的幂。远远超过了大约9E18的极限。
与dir权限(1= read,2= dir,4= execute)一样,1+2+4 =7=完全访问。
我想知道这100种方案中哪一种是用同样的方法选择的。
任何建议/建议都非常感谢。
NB存储将是mysql
-编辑--
这里的最终目标是简化对用户可以使用哪些货币的检查。
向货币赋值如下:
Currency OptVal
GBP 1
USD 2
EUR 4
AUD 8
CAD 16
ZAR 32依此类推(有很多种货币,而且更多的货币将通过密码货币出现,我确信)
这样可以方便地检查用户使用按位运算符的货币.
因此,如果用户的货币设置为3,则只有英镑和美元。5英镑和63英镑,美元,欧元,澳元,CAD,ZAR
诸如此类--希望这能澄清目标。
问题是,当您拥有> 100种货币时,要以其最简单的形式存储该整数。每个选项都需要一个值2E(n-1),对于大的n,这个数字非常大,不能作为整数存储(BIGINT值为18446744073709551615)。
发布于 2014-01-17 00:51:04
你需要建议。别这样做。
MySQL提供了boolean数据类型,方便使用标志。每个值都占用一个字节,因此存储空间将比使用比特大。
MySQL还提供了bit()数据类型,您可以在其中将64位数据放在一起。你可以读到关于他们的这里。
使用内置数据类型只是正确的方法。它们保护您不受服务器的更改、操作系统上的升级,以及您的应用程序和服务器具有不同的终结性的可能性(如果您不知道这是什么,那么您绝对不应该考虑使用bit )。
好消息是,您想要做的事情有一些数据类型。
https://stackoverflow.com/questions/21175695
复制相似问题