0

我尝试在 MySQL 中将二进制转换为小数,但有一个大问题:

SELECT CONV(BINARY('10000000000000000000000000000000000000001111111100000000000000000'),2,10)

SELECT CONV(BINARY('11111111111111111111111111111111111111101111111111011110111100000'),2,10)

给出相同的错误结果:18446744073709551615

虽然,如果我使用 bindec() PHP 函数,我会分别获得:

3.6893488147386E+19 和 1.8446744073743E+19。这些结果是预期的,我会在我的 SQL 请求输出中获得它们。

谢谢你的帮助 !

4

1 回答 1

0

为简单起见,假设所有要转换的字符串都是 65 个字符长。这意味着右移一位将使字符串可转换。所以这样的事情可能会起作用:

SELECT CONV(LEFT(mystring,64))*2 + RIGHT(mystring,1); 
于 2013-01-16T14:34:30.517 回答