2013.07.31
10:00
author: taikiken
0件のコメント
海馬が壊れ気味な毎日。
一度じゃ覚えられないこと多数。
iOS long型、桁の話。
iOS arm CPUは32bit。
iOS longも32bit。
1
2
3
4
5
6
| int int1 = 12345678901;
long long1 = 12345678901;
long long long2 = 12345678901;
NSLog(@"int1:%d long1:%ld long2:%lld", int1, long1, long2);
// int1:-539222987 long1:-539222987 long2:12345678901 |
int int1 = 12345678901;
long long1 = 12345678901;
long long long2 = 12345678901;
NSLog(@"int1:%d long1:%ld long2:%lld", int1, long1, long2);
// int1:-539222987 long1:-539222987 long2:12345678901
*Xcodeではline.1, 2 で警告が出ます。
int と long の出力結果は同じです。
long longだと桁あふれをおこしていません。
【教訓】
iOSで64bitを取り扱う予定の時は、
longじゃなくてlong long
を使う。
【参考】
驚愕の事実。Objective-Cのintとlongの最大値は同じだった。