Tham chiếu đến Convert to absolute value in Objective-C Tôi tự hỏi nếu có các chức năng cho các kiểu được gõ NS. Hoặc là abs(NSInteger)
được không? Nó có an toàn về kiến trúc không?Giá trị tuyệt đối của NSInteger
Trả lời
Sử dụng ABS() vĩ mô, được định nghĩa trong NSObjCRuntime.h, đó là kiến trúc an toàn.
Bạn có thể sử dụng ABS Foundation() vĩ mô:
NSInteger a = 5;
NSInteger b = -5;
NSLog(@"%ld %ld", ABS(a), ABS(b));
1 Tôi đã sử dụng 'MAX' và' MIN' trong nhiều năm và không bao giờ thấy 'ABS'. Tốt để biết. –
Tôi không bao giờ biết rằng: +1. Dù sao, hàm 'abs()' * từ thư viện C không được OK vì tham số của nó là một '' int' thường là 32 bit trong môi trường dev OS X trong khi NSInteger có cùng chiều rộng với kiến trúc 32 hoặc 64 bit. – JeremyP
Trong khi hai câu trả lời đăng tải là hoàn toàn chính xác về việc sử dụng ABS()
vĩ mô, nó chắc chắn cần lưu ý rằng NSIntegerMin
, mà đúng tuyệt đối giá trị không thể được biểu diễn như một NSInteger
lợi nhuận riêng của mình khi hàm ABS()
được gọi.
Giả sử một hệ thống 64-bit:
NSLog(@"ld", ABS(NSIntegerMin));
// prints: -9223372036854775808
NSLog(@"%ld", ABS(NSIntegerMin + 1));
// prints: 9223372036854775807, which == NSIntegerMax
Các kết quả tương tự sẽ xảy ra trên một hệ thống 32-bit, nhưng những con số sẽ là 2147483647 và -2147483648
- 1. giá trị tuyệt đối trong Haskell
- 2. Giá trị tuyệt đối trong vb.net
- 3. giá trị tuyệt đối trong MIPS
- 4. Nhận giá trị tuyệt đối của một số trong Javascript
- 5. Giá trị tuyệt đối trong awk không hoạt động?
- 6. giá trị tuyệt đối với khuôn khổ MongoDB hợp
- 7. Đơn giản hóa Giá trị tuyệt đối trong Mathematica
- 8. Cách in giá trị NSInteger từ NSManagedObject bằng NSLog
- 9. giá trị tuyệt đối cho nổi trong lõi OCaml
- 10. Matlab - sắp xếp theo giá trị tuyệt đối
- 11. SQL giá trị tuyệt đối sum và lặp
- 12. Mathematica không tính giá trị tuyệt đối của một số phức tạp với hệ số thực
- 13. Làm cách nào để tính giá trị tuyệt đối của một số trong XSLT?
- 14. Tại sao giá trị tuyệt đối của số nguyên âm tối đa-2147483648 vẫn là -2147483648?
- 15. Chuyển đổi giá trị tuyệt đối thành CSS tương đối bằng cách sử dụng Javascript
- 16. Hiển thị phạm vi Matplotlib yaxis sử dụng giá trị tuyệt đối thay vì giá trị offset?
- 17. thêm đối tượng NSInteger để NSMutableArray
- 18. Dịch CSS và thay đổi giá trị định vị tuyệt đối
- 19. Hủy bỏ bản sao giữ mục với giá trị tuyệt đối lớn nhất
- 20. Tránh việc sử dụng cắt trong Prolog giá trị tuyệt đối vị
- 21. Trong tmux tôi có thể thay đổi kích thước cửa sổ thành giá trị tuyệt đối
- 22. Java, Cách xác định giá trị tuyệt đối và căn bậc hai
- 23. Chuyển đổi thành giá trị tuyệt đối trong Mục tiêu-C
- 24. Làm thế nào để chọn bản ghi nếu giá trị tuyệt đối của sự khác biệt giữa hai giá trị nếu lớn hơn một số nhất định?
- 25. Biểu đồ hình tròn Matplotlib: Cách thay thế giá trị tương đối được gắn nhãn tự động theo giá trị tuyệt đối
- 26. Làm thế nào để chuyển đổi NSInteger thành giá trị nhị phân (chuỗi)
- 27. Đường dẫn tuyệt đối Asp.Net của URL
- 28. Nhận đường dẫn tuyệt đối của tệp
- 29. Sắp xếp các giá trị NSString như thể NSInteger sử dụng NSSortDescriptor
- 30. NSInteger! = Nil
Won cho NSObjCRuntime.h gợi ý. Cảm ơn. – user500