读书人

Ios long值偷越?int? long? long int

发布时间: 2013-03-06 16:20:31 作者: rapoo

Ios long值越界???int? long? long int? long long? long long int?

今天做项目遇到一个问题,一个17亿的数字加上一个6亿的数字越界了……,然后发现有符号整形最大值是21亿,无符号最大值是42亿。

然后果断把int类型改用long类型存储,奇迹出现了,竟然又越界了……,越的跟整型一样……你妹啊……

Google打不开,然后百度了一下……利马……百度的智商一下就暴露了,根本搜不到想要的结果。果断转360搜索,还挺给力。

于是发现Objective - c基本数据类型有: int / long / long int / long long / long long int /。顿时我就凌乱了……

废话少扯了,还有很多事情要做,这里简答的说一下。在ObjectiveC中int与long的长度由操作系统决定,通常情况下int 的长度与long 的长度就是一样的,比如IOS!也就是说在IOS里int == long!

然后long 其实就是 long int的简写,同理 long long就是 long long int的简写。

综上所述,在IOS中:

int == long == long int

long long int == long long == int * 2


也就说我为了实现存储超过42亿以上的数字必须使用long long 类型!

NSLog(@"%li",xxx);

NSLog(@"%lli",xxx);

读书人网 >操作系统

热点推荐