我尝试在MySQL中将二进制文件转换为小数,但是存在一个很大的问题:
SELECT CONV(BINARY('10000000000000000000000000000000000000001111111100000000000000000'),2,10)
和
SELECT CONV(BINARY('11111111111111111111111111111111111111101111111111011110111100000'),2,10)
给出相同的错误结果:18446744073709551615
虽然,如果我使用bindec()PHP函数,我分别获得:
3.6893488147386E + 19和1.8446744073743E + 19。这些结果是预期的,我将在我的SQL请求输出中获取它们。
感谢您的帮助!
答案 0 :(得分:0)
为简单起见,我们假设要转换的所有字符串都是65个字符长。这意味着向右移位一个位置会使字符串可转换。所以这样的事情可能有用:
SELECT CONV(LEFT(mystring,64))*2 + RIGHT(mystring,1);