32位、64位对api的影响:Andriod、iOS、JavaScript等

常见操作系统:

Android:只有32位

iOS:只有32位

Linux server(CentOS、Ubuntu、RedHat等):64位(大部分公司服务器使用)、32位(已淘汰)

Windows PC:64位,32位

 

常见软件:

Android app:java或c++。如果用java,os无关,则int是64位。如果用c++,待验证。

iOS app:object c,os有关。int是32位。

php:os有关。编译安装与server相同,int为64位或32位。

mysql:os无关。int为64位。

32位浏览器(chrome、firefox)中的JavaScript:约9千万亿,待定,未找到权威文档

64位浏览器(waterfox)中的JavaScript:约9千万亿,待定,未找到权威文档

var a = 9000000000000001;alert(a -1 + 1);

对api程序开发的影响:

通过php开发api提供json给app、浏览器js引擎使用时,由于php的web server是64位的,而Android、iOS、浏览器js的int范围不一致。

32位int大概为21亿,比如网盘的用户总容量为5GiB,php接口返回数据如下:

{

    "capacity" : 5368709120, //容量53亿Byte,即5GiB,超过了21亿

    "used_space" : 1073741824

}

结果:Android Java app正常,iOS app无法处理数据,浏览器JavaScript正常。

所以需要使用string,而不是int,iOS拿到之后再做大整数相除即可。即:

{

    "capacity" : "5368709120",

    "used_space" : "1073741824"

}

参考资料:

http://www.cnblogs.com/sink_cup/archive/2010/12/12/php_intval_mysql_int.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值