Object c/swift,java,c/c++在32位和64位各个平台上基本数据类型 所占有的字节数

网友投稿 276 2022-10-31


Object c/swift,java,c/c++在32位和64位各个平台上基本数据类型 所占有的字节数

现在很多app和服务器交互,双方收到对方收据,怎么才能完整解析消息,是大家都会遇到的问题。现在来看以下他们的字节长度差异。

iOS

64位编译器,对应64位系统,包含机型(iphone5s—同时运行32位应用和64位应用,iphone6, iphone6 plus, iphone6s, iphone6s plus, iphone7, iphone7 plus)

char :1个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理其它编译器)

char*(即指针变量): 8个字节

short int : 2个字节

int: 4个字节

unsigned int : 4个字节

float: 4个字节

double: 8个字节

long: 8个字节

long long: 8个字节

unsigned long: 8个字节

32位编译器,对应32位系统,包含主要机型(iphone4,iphone4s, iphone5),iphone4以下机型苹果商店不需要适配,所以忽略。

char :1个字节

char*(即指针变量): 4个字节

short int : 2个字节

int: 4个字节

unsigned int : 4个字节

float: 4个字节

double: 8个字节

long: 4个字节

long long: 8个字节

unsigned long: 4个字节

java编译器。

Byte: 1字节

Short: 2字节

Int: 4 字节

Long: 8字节

Character: 2字节

Float: 4字节

Double: 8字节

c/c++ win32、win64、linux32、linux64中各数据类型占字节数

以前遇到消息id,app定义的为int类型,服务器(java)定义为long类型,结果导致消息解析不一致,修改long long类型才解决。

我遇到过订单id,app定义的为long类型,服务器(java)定义的为long类型,当应用运行在iphone5s(64位系统)手机上正常,当运行在iphone4s(32位系统)时,发现订单不识别,接不了单,后来app修改为long long类型才解决。

遇到过[_orderInfo[@”ID”] longValue] 崩溃后修改为 [_orderInfo[@”ID”] longLongValue]才正常,发现app只要是long,int,bool类型都可以用longLongValue来解析,反过来就不一定行。

国内绝大多少企业为了服务器开发快和具有web前端,都是基于java语言的开发,并且有web展示前端,服务器大多数部署在阿里云上。所以了解下各个编译器在各个操作系统平台上的字节定义很有必要。 基于Java服务器的优点:跨平台容易,基于web开发快,java开发人员多。 基于c++服务器的有限:运行速度比基于java语言开发的服务器快20%(从视频处理上显然的看出),便于底层协议开发,对web的兼容性很差(一般需要中间件嵌入基于java的web页面,c#,.net语言我不了解)。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:使用mac电脑的终端登陆服务器
下一篇:MyBatis映射文件resultMap元素中使用多个association的方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~