ctobin函数的局限性
最近在编程的过程中发现ctobin函数的一个局限性,导致无法将字节表示的数据转换为整数。举个例子说明:
cstr=repli(chr(255),4) &&16进制字符串 FF FF FF FF,可以表示的整数是4294967295 ?ctobin(cstr,"4s") &&-1
进一步尝试,发现ctobin函数支持的最大整数是2^31-1,即2147483647,查了帮助发现,它支持的整数值在-2147483647 to 2147483647 之间。
这就是我用ctobin函数时,出现莫名其妙的原因。。。
也就是说,要换算上面那个FF FF FF FF 的数时,就要另外编写个转换的程序。
知道了产生问题的原因,解决起来就简单了,这里提供一个简单方法,可以将以任意字符保存的值转换为整数。
cstr=repli(chr(255),4) &&16进制字符串 FF FF FF FF,可以表示的整数是4294967295
?eval("0x"+strc(cstr,15)) &&4294967295
上面的程序可以将任意字符表示的数值转换成10进制的,特简单。







