已经问过类似的问题了,但请有人向我解释为什么这段代码......
NSInteger hexInt = 0x80000505;
NSLog(@"%d, %#x", hexInt, hexInt);
打印出-2147482363, 0x80000505
而0x80000505等于2147484933而不打印到-2147482363 ?
谢谢......
答案 0 :(得分:0)
NSInteger定义为int(typedef int NSInteger
),2147484933溢出int最大值(在32位系统上,其中int的范围是-2,147,483,648到+2,147,483,647),因为如您所见,最高位是设置在0x80000505中,所以0x80000505是负数。