Skip to main content

Một tràn số học là gì?

Một tràn số học là một điều kiện xảy ra trong máy tính, đặc biệt là trong lĩnh vực lập trình máy tính, khi tính toán hoặc hoạt động mang lại kết quả quá lớn cho hệ thống lưu trữ hoặc đăng ký để xử lý.Overflow cũng có thể đề cập đến số tiền bằng kết quả đã cho vượt quá bộ nhớ được chỉ định để lưu trữ.Trong một số trường hợp, tràn dữ liệu có thể được lưu trữ tại một vị trí lưu trữ dữ liệu khác;Ở những người khác, nó có thể khiến một chương trình bị sập, chạy chậm hoặc mang lại kết quả không chính xác.Tràn điện số không bị giới hạn đối với các máy tính cá nhân hoặc doanh nghiệp đầy đủ, vì máy tính cầm tay đơn giản và thiết bị truyền thông cũng có giới hạn về mức độ của các giá trị mà họ có thể xử lý.Chúng có xu hướng là lỗi lập trình rất phổ biến để nhận.Có nhiều phương pháp khác nhau để bàn giao tràn số học.Thiết kế của chương trình đóng một phần rất quan trọng;Một chương trình được thiết kế tốt, sử dụng các loại dữ liệu và độ dài chính xác và phù hợp sẽ không gặp phải các lỗi đó.Nếu sự chăm sóc tuyệt vời được đưa vào kiểm tra thứ tự hoạt động và giữ mọi thứ nhất quán, có thể tránh hoàn toàn các lỗi tràn.Nó thường dễ dàng hơn cho một hệ thống để xử lý các hoạt động đơn giản, nhỏ hơn các hoạt động phức tạp liên quan đến số lượng lớn và tính toán quá mức.Khi điều đó không cực kỳ quan trọng là số được trả về là hoàn toàn chính xác, đôi khi sẽ đủ để viết chương trình theo cách mà nó thông báo cho người dùng lỗi tràn nhưng trả về một giá trị dù sao đi nữa.Cách phổ biến nhất để xử lý một lỗi tràn số học là hoàn toàn bỏ qua nó.Mặc dù điều này thường vô hại, nhưng nó có thể đưa ra kết quả không chính xác và có thể làm tổn hại đến tính hữu dụng và hiệu quả của chương trình.

Ariane 5 Chuyến bay 501 minh họa rõ ràng sự nguy hiểm của các lỗi tràn số học.Chuyến bay là lần chạy thử nghiệm đầu tiên của hệ thống khởi động Ariane 5 châu Âu, đã sử dụng lại phần lớn mã từ hệ thống Ariane 4 cũ.Tuy nhiên, sự gia tốc của Ariane 5 lớn hơn đáng kể so với Ariane 4 và chương trình không đủ để xử lý các giá trị lớn hơn cần thiết.Như vậy, tên lửa đã để lại đường bay dự định của nó 37 giây sau khi phóng và phải bị phá hủy.Lỗi lập trình đơn giản này có giá hàng trăm triệu đô la Mỹ.