• 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

  • 相关阅读:
    C# 正则 获取 Img Src路径
    .NET动态加载用户控件并传值的方法
    ViewState压缩技术
    BookStrap中关于button和图片的注意点
    在idea中使用Git
    了解Git的使用
    javascript-----DOM文档对象模型
    浅谈java集合
    javaI/O流
    二进制和十进制的转换
  • 原文地址:https://www.cnblogs.com/sink_cup/p/php_api_64bits_json_int_android_ios.html
Copyright © 2020-2023  润新知