php - 大数按位运算符

标签 php mysql

有没有办法检查比“2147483648”更大的值? 我必须处理最大为“6.73297395398192e212”(2^707)的数字。 数据以 float 形式存储在 mysql 数据库中。

也许我只是使用了错误的搜索词或者没有好的方法。

最佳答案

A double precision value使用 8 个字节,显然你不能在其中存储 707 位(我假设你正在尝试这样做)。它可以通过 approximation 存储值 1e308这会降低低位数字的精度,这使得它对于存储要进行按位运算的数据来说是一个糟糕的选择。对于8个字节的按位运算,可以使用bigint。

从 MySQL 8 开始,MySQL 支持 bitwise operations on binary string任意长度,所以你应该以这种方式存储你的值 - 无论如何,位数组基本上是一个二进制字符串。但您不能将它们视为数字(例如将它们像整数一样进行加法或乘法)。

对于早期的 MySQL 版本,二进制字符串上的位操作仅限于 8 个字节。您仍然应该将位存储为二进制字符串(这样可以轻松升级),并编写一个执行操作的小函数,例如按字节排列。

关于php - 大数按位运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51990628/

相关文章:

php - 如何在 Centos 7 上手动安装 PHP-Zts

php - 按最后一个字符拆分字符串并保存到数组?

php mysql 从数据库中检索单个值

php - 使用带有 <img src =""的 php 显示图像

php - 使用脚本转换表中的列值

c# - 如何在WPF 中捕获Datagrid 单元格的值变化事件?

mysql - 如何在 MySQL 中按所有 12 个月进行分组?

php - PHP 中的全局捕获

Mysql从表中查询随机唯一值

php - mysql 选择不是多对多关系的行