我一直在試圖檢查一個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