无符号整数和有符号整数比较注意
如果有符号整数是负数,则和无符号整数比较时结果错误。
尤其注意数组的count和一个有符号整数比较这种情况。
NSUInteger x = 1;
NSInteger y = -1;
if(x>y){
NSLog(@"ok");
}else{
NSLog(@"error");
}
解决方案:
将无符号整数转为有符号整数后再比较:
NSUInteger x = 1;
NSInteger y = -1;
NSInteger z = x;
if(z>y){
NSLog(@"ok");
}else{
NSLog(@"error");
}
如果有符号整数是负数,则和无符号整数比较时结果错误。
尤其注意数组的count和一个有符号整数比较这种情况。
NSUInteger x = 1;
NSInteger y = -1;
if(x>y){
NSLog(@"ok");
}else{
NSLog(@"error");
}
解决方案:
将无符号整数转为有符号整数后再比较:
NSUInteger x = 1;
NSInteger y = -1;
NSInteger z = x;
if(z>y){
NSLog(@"ok");
}else{
NSLog(@"error");
}