參考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. 轉換的NSDictionary值NSInteger的
- 2. double的絕對值
- 3. 絕對值
- 4. 絕對差值EmguCv
- 5. 絕對值計算
- 6. 絕對值在MIPS
- 7. MATLAB:絕對值的倒數
- 8. 如何將NSDecimal值轉換爲NSInteger值?
- 9. 檢查的對象是NSInteger的
- 10. groupby object pandas的絕對值的均值
- 11. 如何將NSString的值轉換爲NSInteger
- 12. NSInteger的最大值是多少?
- 13. NSNumber與NSInteger與NSObject屬性的對比
- 14. 對NSInteger的NSMutableArray進行排序
- 15. NSInteger的問題
- 16. NSInteger的mutableCopy
- 17. NSInteger的釋放
- 18. NSInteger!= nil
- 19. 對NSString值進行排序,就好像NSInteger使用NSSortDescriptor一樣
- 20. Google Trends:獲取絕對值
- 21. GORM標準由絕對值
- 22. Matlab - 按絕對值排序
- 23. 二進制絕對值
- 24. 計算絕對值組合
- 25. 絕對值不工作
- 26. 絕對值限制R中
- 27. iphone NSInteger的問題
- 28. 絕對值化的圖像的URL與「..」
- 29. JSTL:BigDecimal的絕對值(適當的方式...)
- 30. NSString是iOS中的一個NSInteger值的值
贏得NSObjCRuntime.h提示。謝謝。 – user500