32位、64位對api的影響:Andriod、iOS、JavaScript等

來源:互聯網
上載者:User
常見作業系統:

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.