【发布时间】:2019-07-17 19:39:55
【问题描述】:
我使用以十进制存储数据的数据库。我将其转换为二进制,因此我可以将其读取为打开和关闭。在十进制长度超过 6 个字符之前,我没有任何问题。
以下作品:
$value = 2147614720;
$value = decbin($value);
输出:10000000000000100000000000000000
但是,如果我尝试从数据库中提取该值,如果超过 6 个字符,它将不起作用。
$value = $row['decimalvalue'];
$value = decbin($value);
输出:1111111111111111111111111111111
任何帮助都会很棒。谢谢。
【问题讨论】:
-
你得到最大整数二进制值 echo
decbin(2147483647);检查这个stackoverflow.com/questions/10255724/…。如果你有非常大的整数,你可以使用BIGINT -
首先,感谢您的快速回复。我不确定该消息来源是否帮助我获得了我正在寻找的答案。例如,如果我将字段类型更改为 varchar(20),它不会改变任何东西;同样的结果。如果我自己打印出 $row['decimalvalue'],它会显示正确的值 2147614720。当我尝试从表中提取数据然后将其放入 decbin() 时,它只会给我这个问题。如果我分别做任何一方,它的工作原理。
-
确定吗?看到这个rextester.com/PBMBJY55859 如果值是正确的然后decbin 给出正确的二进制值
1111111111111111111111111111111是十进制的二进制值2147483647这意味着你已经将2147483647传递给decbin