当我否定 NSUInteger 并转换为双精度时,我遇到了一些奇怪的行为。
NSUInteger test = 10;
NSLog(@"%d", test);
NSLog(@"%f", (double) test);
NSLog(@"%d", -test);
NSLog(@"%f", (double) -test);
输出是:
10
10.000000
-10
4294967286.000000
任何想法为什么会这样?我正在使用 NSUInteger,因为这是从 [NSArray count] 返回的内容。我可以轻松地使用 int 而不是没有问题,我会的,但我非常好奇为什么会出现这种行为。