我一直在试图检查一个NSInteger是奇数还是偶数。我已经找到了一种使用C来完成它的方法,但它不适用于Objective-C。我将如何做到这一点?检查NSInteger是奇数还是偶数
41
A
回答
115
NSInteger
被定义为int
(或在一些环境中为)。所以检查奇数是像纯int:
NSInteger num;
if (num % 2)
// odd
else
// even
17
NSInteger n = 5;
NSLog(@"%s", n & 1 ? "odd" : "even");
,或者使用如果
if (n & 1) {
; // odd
} else {
; // even
}
一些输出:
if (n & 1) {
NSLog(@"odd");
} else {
NSLog(@"even");
}
指针例如:
NSInteger x = 7;
NSInteger *y = &x;
if (*y & 1) {
NSLog(@"odd");
} else {
NSLog(@"even");
}
8
据我所知。 NSInteger
,不像NSNumber
,只是typeder到沿线的一个真实的整数类型:
typedef long NSInteger;
所以,你应该能够做到:
NSInteger nsintvar = 77;
if ((nsintvar % 2) == 0) {
// number is even
} else {
// number is odd
}
这里有一个完整的程序,编译在Cygwin下用GNUstep,这说明它:
#import <stdio.h>
#import <Foundation/NSObject.h>
int main(int argc, const char *argv[]) {
NSInteger num;
for (num = 0; num < 20; num++) {
if ((num % 2) == 0) {
printf ("%d is even\n", num);
} else {
printf ("%d is odd\n", num);
}
}
return 0;
}
它输出:
0 is even
1 is odd
2 is even
3 is odd
4 is even
5 is odd
6 is even
7 is odd
8 is even
9 is odd
10 is even
11 is odd
12 is even
13 is odd
14 is even
15 is odd
16 is even
17 is odd
18 is even
19 is odd
3
那些其他的答案应该工作。也许这是你的makefile或其他问题。在代码之外考虑。
如果所有其他都失败只是将整数声明为int。您不必将其声明为NSInteger。
2
使用“%”运算符。从本质上讲,当你划分一个数字时,它会计算出剩下的部分。所以:
号%2
将是= 0,如果数量为偶数,作为偶数除以2没有余数。如果它不= 0,它一定是奇数。
0
NSArray *arrayTotal = [NSArray arrayWithObjects:@"A", nil];
// NSArray *arrayTotal = [NSArray arrayWithObjects:@"A", @"B", nil];
// NSArray *arrayTotal = [NSArray arrayWithObjects:@"A", @"B", @"C", nil];
// NSArray *arrayTotal = [NSArray arrayWithObjects:@"A", @"B", @"C", @"D", nil];
// NSArray *arrayTotal = [NSArray arrayWithObjects:@"A", @"B", @"C", @"D", @"E", nil];
NSArray *arrLeft;
NSArray *arrRight;
NSRange range;
range.location = 0;
range.length = ([arrayTotal count] % 2) ? ([arrayTotal count]/2) + 1 : ([arrayTotal count]/2);
arrLeft = [arrayTotal subarrayWithRange:range];
range.location = range.length;
range.length = [arrayTotal count] - range.length;
arrRight = [arrayTotal subarrayWithRange:range];
NSLog(@"Objects: %lu", (unsigned long)[arrLeft count]);
NSLog(@"%@", [arrLeft description]);
NSLog(@"Objects: %lu", (unsigned long)[arrRight count]);
NSLog(@"%@", [arrRight description]);
希望它有帮助!
相关问题
- 1. 检查float是“奇数”还是“偶数”?
- 2. 如何检查VHDL整数是偶数还是奇数?
- 3. PDA:如何检查pop是偶数还是奇数
- 4. 角检查类是奇数还是偶数的NG-点击
- 5. 这是偶数还是奇数?
- 6. ASP.NET查看数字是偶数还是奇数
- 7. 如何查找大数是偶数还是奇数?
- 8. 用于检查总和是偶数,奇数还是零的mssql查询?
- 9. 使用嵌套for循环并检查数字是偶数还是奇数
- 10. 如何检查ANSI C中的星期数是偶数还是奇数?
- 11. 偶数还是奇数? Python in JES Program
- 12. 查找双人/浮点值是奇数还是偶数在C#
- 13. 如何查找日期是从奇数还是偶数?
- 14. stackoverflow错误:检查号码是偶数还是奇数没有%或/运算符
- 15. 使用JS检查整数是偶数还是按q退出
- 16. 判断一个数字是奇数还是偶数
- 17. 使用尾递归计算数字是偶数还是奇数
- 18. 如何判断int数是奇数还是偶数? (二进制)
- 19. 显示给定数字是偶数还是奇数的程序
- 20. 使用SqlServer sql查询,如何判断整数列是奇数还是偶数?
- 21. 支票号码是偶数还是奇数
- 22. 如何识别它是奇数还是偶数并添加类?
- 23. 如何了解bash中的值是偶数还是奇数?
- 24. 确定一个星期是奇数还是偶数
- 25. 如何检查值是否有奇偶位或奇数?
- 26. 检查一个数字是否是质数,偶数或奇数使用函数
- 27. 检查一个数字是奇数还是蟒蛇
- 28. Scala:如何检查一个数字的每个数字是偶数还是奇数?
- 29. 检查指数的奇数和偶数
- 30. Javascript函数检查偶数/奇数
也不管用。 http://cl.ly/c7k。 – Joshua 2010-04-23 06:31:19
您的“整数”变量定义一定有问题。无论如何,我喜欢贺拉斯的答案更多 – Vladimir 2010-04-23 06:45:19
定义是:\t'NSInteger * integer;' – Joshua 2010-04-23 06:51:48