參考Convert to absolute value in Objective-C我想知道是否有NS typedefed類型的函數。或者是abs(NSInteger)
好嗎?它是架構安全的嗎?NSInteger的絕對值
31
A
回答
60
使用ABS()宏,這是在NSObjCRuntime.h定義,它是建築安全。
17
您可以使用基金會的ABS()宏:
NSInteger a = 5;
NSInteger b = -5;
NSLog(@"%ld %ld", ABS(a), ABS(b));
+0
+1我一直在使用'MAX'和'MIN'多年,從未見過'ABS'。很高興知道。 –
+1
我從來不知道:+1。無論如何,來自C庫的'abs()'*函數*並不是OK,因爲它的參數是C'int',它通常是OS X dev環境中的32位,而NSInteger與體系結構的寬度相同,即32或64位。 – JeremyP
3
儘管這兩個貼答案是有關使用ABS()
宏絕對正確的,它當然應該指出的是NSIntegerMin
,其真正的絕對值不能表示爲NSInteger
回報本身當ABS()
函數被調用。
。假定一個64位系統:
NSLog(@"ld", ABS(NSIntegerMin));
// prints: -9223372036854775808
NSLog(@"%ld", ABS(NSIntegerMin + 1));
// prints: 9223372036854775807, which == NSIntegerMax
同樣的結果會發生在32位系統上,但該數字將+2147483647和-2147483648
相關問題
- 1. 獲取NSInteger值
- 2. 轉換的NSDictionary值NSInteger的
- 3. NSInteger的是NSInteger的錯誤
- 4. double的絕對值
- 5. GRBVar絕對值
- 6. 絕對值
- 7. 絕對差值EmguCv
- 8. 絕對值計算
- 9. 涉及絕對值
- 10. 絕對值在MIPS
- 11. 最小絕對值
- 12. 位置絕對值:負值
- 13. MATLAB:絕對值的倒數
- 14. Matplotlib ytick的絕對值
- 15. cplex的絕對值C++
- 16. DIV內的絕對值
- 17. 使用SharedSingleton的屬性值NSInteger的
- 18. 如何將NSDecimal值轉換爲NSInteger值?
- 19. 檢查的對象是NSInteger的
- 20. groupby object pandas的絕對值的均值
- 21. NSInteger的最大值是多少?
- 22. 如何將NSString的值轉換爲NSInteger
- 23. 對NSInteger的NSMutableArray進行排序
- 24. NSNumber與NSInteger與NSObject屬性的對比
- 25. NSInteger的mutableCopy
- 26. 得到NSInteger的
- 27. NSInteger的釋放
- 28. 分配NSInteger的*
- 29. NSInteger的問題
- 30. SQL的絕對值超過一定值
贏得NSObjCRuntime.h提示。謝謝。 – user500