首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >大数的位比较

大数的位比较
EN

Stack Overflow用户
提问于 2014-01-17 00:30:31
回答 1查看 207关注 0票数 0

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

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

与dir权限(1= read,2= dir,4= execute)一样,1+2+4 =7=完全访问。

我想知道这100种方案中哪一种是用同样的方法选择的。

任何建议/建议都非常感谢。

NB存储将是mysql

-编辑--

这里的最终目标是简化对用户可以使用哪些货币的检查。

向货币赋值如下:

代码语言:javascript
复制
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)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-17 00:51:04

你需要建议。别这样做。

MySQL提供了boolean数据类型,方便使用标志。每个值都占用一个字节,因此存储空间将比使用比特大。

MySQL还提供了bit()数据类型,您可以在其中将64位数据放在一起。你可以读到关于他们的这里

使用内置数据类型只是正确的方法。它们保护您不受服务器的更改、操作系统上的升级,以及您的应用程序和服务器具有不同的终结性的可能性(如果您不知道这是什么,那么您绝对不应该考虑使用bit )。

好消息是,您想要做的事情有一些数据类型。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21175695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档