Trong C++, ví dụ fmod(-2,2)
trả về -0
. Biểu thức -0 == 0
là đúng, nhưng các bit khác nhau. Mục đích của việc có một cái gì đó như -0
phải là 0
nhưng được thể hiện khác nhau là gì? Có phải -0
được sử dụng chính xác giống như 0
trong bất kỳ tính toán nào không?Sự khác nhau giữa -0 và 0 là gì?
Trả lời
Không, +0
và -0
không được sử dụng theo cách tương tự trong mọi tính toán. Ví dụ:
3·(+0) = +0
+0/-3 = -0
Tôi đề nghị bạn đọc What Every Computer Scientist Should Know About Floating-point arithmetic David Goldberg, mà tỏ một ánh sáng về việc tại sao +0 và -0 là cần thiết trong nổi điểm số học và trong đó cách chúng khác nhau.
Ví dụ về cách +0
quảng cáo -0
khác nhau (và tại sao có thể hữu ích khi xử lý các giá trị phức tạp) có thể được tìm thấy trong Kahan, W. 1987. Cắt giảm chi tiêu cho hàm tiểu học phức tạp, trong "Nhà nước của nghệ thuật trong số Phân tích "(Tôi đã không thể tìm thấy một pdf của bài viết này, bạn có thể tìm thấy một tại thư viện đại học địa phương của bạn).
Liên kết giải thích nó theo cách tốt! – Danvil
Chuẩn IEEE 754 cho phép cả +0 và -0. Cùng một mantissa, dấu hiệu khác nhau. Chúng phải giống nhau trong tính toán.
Trừ khi chúng khác nhau; Ví dụ: '1/x'. –
Được rồi, khác biệt. Tôi không chia cho số không thường xuyên, vì vậy tha thứ cho tôi. – alxx
Trang Wikipedia Signed Zero sẽ trả lời hầu hết các câu hỏi sau:
Signed zero là zero với một liên dấu. Trong số học thông thường, −0 = 0. Tuy nhiên, trong tính toán, một số biểu diễn cho phép tồn tại của hai số không, thường biểu thị bằng −0 (số không âm) và +0 (dương không). Điều này xảy ra trong một số biểu tượng số đã ký cho các số nguyên, và trong hầu hết các số dấu phẩy động . Số 0 là thường được mã hóa là +0, tuy nhiên, nó có thể được biểu thị bằng dấu +0 hoặc −0.
Các tiêu chuẩn IEEE 754 cho nổi điểm số học (hiện nay được sử dụng bởi hầu hết máy tính và lập trình ngôn ngữ hỗ trợ floating point số) đòi hỏi cả hai +0 và -0. Các sốcó thể được coi là biến thể của đường số thực mở rộng như mà 1/−0 = −∞ và 1/+ 0 = + ∞, phân chia bằng 0 chỉ không xác định cho ± 0/± 0.
(...)
Người ta cho rằng sự bao gồm của ký zero trong IEEE 754 làm cho nó nhiều dễ dàng hơn để đạt được độ chính xác số trong một số vấn đề quan trọng, trong đặc biệt khi tính toán với phức tạp tiểu học chức năng.
- 1. Sự khác nhau giữa "return 0" và "exit (0)"
- 2. Sự khác biệt giữa (char) 0 và '\ 0' là gì? trong C
- 3. Sự khác biệt giữa mảng.GetLength (0) và mảng.GetUpperBound (0)
- 4. Sự khác nhau giữa __FILE__ và sys.argv [0]
- 5. Sự khác nhau giữa Thread.yield() và Thread.sleep (0) trong Java là gì?
- 6. Sự khác nhau giữa NULL và ký tự (0) trong R là gì?
- 7. Sự khác nhau giữa [0] và [: 1] trong Go là gì?
- 8. Sự khác biệt giữa href = "", href = "#" và href = "javascript: void (0)" là gì?
- 9. Sự khác biệt giữa srand (1) và srand (0)
- 10. Sự khác nhau giữa isSaleable() và isAvailable() là gì?
- 11. Sự khác nhau giữa: = và = trong MySQL là gì?
- 12. Sự khác biệt giữa số (0), số (1) .. và đếm (*) trong mySQL/SQL là gì?
- 13. Sự khác nhau giữa Subtotal và BaseSubtotal là gì?
- 14. chênh lệch giữa (0) sys.exit và os._exit là gì (0)
- 15. Sự khác biệt giữa Array.length = 0 và Array = []?
- 16. Sự khác biệt giữa $ a = 0 và $ a = '0' trong PHP
- 17. Có sự khác biệt nào giữa i == 0 và 0 == i không?
- 18. Sự khác biệt giữa khoảng trống ảo funcFoo() const = 0 và void ảo funcFoo() = 0;
- 19. Sự khác nhau giữa querySelector và getElementsByTagName là gì?
- 20. PowerShell: Sự khác nhau giữa 1234 và (1234) là gì?
- 21. sự khác biệt giữa "void 0" và "không xác định"
- 22. Sự khác nhau giữa KERN_INVALID_ADDRESS và KERN_PROTECTION_FAILURE là gì?
- 23. Mảng dedpe có tên: Sự khác biệt giữa [0] ['tên'] và ['tên'] [0]?
- 24. sự khác biệt của setVisibility (View.INVISIBLE) là gì; setVisibility (0);
- 25. Sự khác nhau giữa FUTEX_WAIT và FUTEX_WAIT_PRIVATE là gì?
- 26. Sự khác nhau giữa dấu thời gian (0) và dấu thời gian (6)
- 27. Trong JavaScript, sự khác biệt giữa myArray.length = 0 vs myArray = new Array() là gì?
- 28. Sự khác nhau giữa WPF và WinForms là gì?
- 29. Sự khác nhau giữa JavaScript và Java là gì?
- 30. Sự khác nhau giữa ODBC và OleDB là gì?
Tôi tin rằng 1/0 là cực dương và 1/-0 là vô cực âm. Khác hơn là tôi không biết. –
Tôi không chắc liệu chênh lệch giữa -0 và 0 là -0 hay 0, –