Luat如何实现64位整数的存储

luat的lua是5.1.5版本,默认是32位整数或者32位float的,当整数大于32位的时候是不能被存储的。

为了解决这个问题,在luat的core层实现了一个方法,用来存储64位的整数。

rtos.toint64("862991234567890","big")
rtos.toint64("862991234567890","little")

注意:该方法返回的是字符串(lua的字符串包含二进制流,也就是number,包括0都可以保存到字符串里,不仅仅是可见ascii)

本质上,number就是N个8位的字节序列,因此有大小端序,根据你实际的文本解析协议选择即可。lua默认是大端序。常用的例子是存储IMIE和ICCID

例如:local imei = rtos.toint64(misc.getImei(), "big")



上次更新 2021-01-28