php - 数字字符串(任意大小)-> 多个整数

标签 php mysql 64-bit 32-bit bigint

我遇到了一个问题,因为我的数据库有 BIGINT 数据(64 位整数),但我运行的 PHP 版本只有 32 位。

因此,当我从表中提取值时,我最终得到一个数字字符串,表示以 10 为基数的 64 位整数。理想情况下,我想做的是使用 64 位整数作为位掩码。因此,我需要转到两个 32 位整数(一个代表上半部分,一个代表下半部分)或基数为 2 的数字字符串。

问题是我不能将它相乘,因为我的 PHP 只有 32 位。我卡住了吗?

最佳答案

您可以使用 MySQL 的 bit shift operators将 64 位整数拆分为两个 32 位整数。因此,您可以选择:

select (myBigIntField & 0xffffffff) as lowerHalf,
       (myBigIntField >> 32) as upperHalf

关于php - 数字字符串(任意大小)-> 多个整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1576192/

相关文章:

php - 如何在 php、mysql 和 ajax session 中显示用户在线或离线

php - 如何在 PHP 和 MySQL 中正确使用关键字进行搜索

64-bit - 64 位机器上的无符号 128 位除法

c# - 在64位版本服务器中从C#读取Excel文件

php - 正则表达式 php 获取 mysql 插入值

php - 使用 PHP 将图像上传到文件夹,同时将描述保存到数据库

php - 在 php 中从 json_decode() 获取值时出错?

php - 如何获取mysql表列的小数位数

Python - 通过从B表中选择id来更新一个表中的多条记录的最快方法

Java - 确定操作系统位版本