גלישת מספר
במחשבים, גלישת מספר, היא בעיה הנגרמת על ידי שימוש במספר מועט מדי של סיביות לייצוג מידע כלשהו. ברוב המחשבים, בעת ביצוע פעולה הגורמת לגלישה, יישמרו הסיביות הפחות משמעותיות של התוצאה והספרה המשמעותית ביותר תאבד (תופעה זו נקראת "קיטום").
במעבדים מסוימים, ניסיון להגדיל את המספר מעבר לתוצאה המקסימלית המתאפשרת יחזיר את אותה תוצאה מקסימלית (תופעה זו נקראת "ספיגה"). גלישה עשויה להתבצע באמצעות הגדלת מספר מעבר לערך מקסימלי כלשהו (באמצעות פעולות חיבור או כפל, למשל) ואז נקראת הגלישה "גלישה מלמעלה" (Overflow), או באמצעות הקטנתו מתחת לערך מינימלי כלשהו (באמצעות פעולות חיסור או חילוק, למשל) ואז נקראת הגלישה חמיקה[1] או "גלישה מלמטה" (Underflow).
גלישה עלולה לגרום לתוצאות לא רצויות, בהתאם לסוג המשתנה בו קרתה הגלישה. בשפות תכנות לא בטוחות עלולה הגלישה לגרום לגלישת חוצץ ולהקטין את אמינות המערכת ובטיחותה.
שיגור הניסוי הראשון של משגר הלוויינים אריאן 5, ב־4 ביוני 1996, הסתיים בהשמדה עצמית 40 שניות לאחר שהחל, כתוצאה מבאג של גלישת מספר במחשב הניווט של המשגר. הבאג נגרם כתוצאה מניסיון להעביר מספר בן 64 סיביות בנקודה צפה למספר שלם בן 16 סיביות; ניסיון שגרם להפסקת פעולתו של המחשב.[2]
ראו גם
[עריכת קוד מקור | עריכה]הערות שוליים
[עריכת קוד מקור | עריכה]- ^ חֲמִיקָה במילון טכנולוגיית המידע: אריתמטיקה ולוגיקה (תש"ן), באתר האקדמיה ללשון העברית
- ^ A Bug and a Crash - Sometimes a Bug Is More Than a Nuisance, James Gleick, הניו יורק טיימס, 1 בדצמבר 1996 (פרסום חוזר באתר אחר)