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

Ios long值越界???int? long? long int? long long? long long int?今天做项目遇到一个问题,一个17亿的数

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);