נקודה צפה היא שיטה לייצוג מספרים ממשיים במחשב. השיטה מאזן בין הרצון לייצג טווח רחב של מספרים לבין מגבלות המקום שמוקצב לשמירתם.
השם "נקודה צפה" מציין שמספר הספרות משמאל ומימין לנקודה העשרונית משתנה לפי המספר. זאת בניגוד לנקודה קבועה, שבה כמות הספרות בכל צד קבועה.
מספר מיוצג כ-m × b^e. כאן מנטיסה (m) היא חלק המספר שמכיל את הספרות המשמעותיות, בסיס (b) הוא הבסיס שבו עובדים, ומעריך (e) הוא החזקה שמזיזה את הנקודה.
לפי תקן IEEE קיימים ערכים מיוחדים כגון אינסוף ו-NaN (Not a Number). יש גם ייצוגים מיוחדים לאפס, ולעיתים שני אפסים נבדלים: 0+ ו-0-.
המנטיסה בדרך כלל מיוצגת במצב מנורמל, כלומר בצורה שמקטינה את השגיאה.
בבסיס 2 לא כל שבר ניתן לייצוג מדויק. לדוגמה, 0.1 לא מיוצג בדיוק בבסיס 2. ערכים כאלה נשמרים בעיגול, ולכן חישובים יכולים להניב תוצאות כמו 0.1 + 0.2 = 0.30000000000000004.
שגיאות העיגול גדלות כשהמעריך גדול יותר. חישובים נוספים על מספרים עשויים להגביר את חוסר הדיוק.
כאשר מחברים מספר קטן מאוד למספר גדול מאוד, המספר הקטן עלול "להיספג" ולא להשפיע על התוצאה. זה משנה את חוקי החיבור והקיבוץ הרגילים. לכן סדר הפעולות משפיע על התוצאה.
אם המעריך גדול מדי תתרחש גלישה (overflow) והערך יהפוך לאינסוף. אם המעריך קטן מדי תתרחש חמיקה (underflow) והתוצאה תהיה מספר מיוחד קטן מאוד או אפס.
פעולות שלא מוגדרות מתמטית במערכת, כמו שורש של מספר שלילי, מניבות NaN לפי תקן ה-IEEE.
מרבית המחשבים משתמשים בתקן IEEE 754 לייצוג בנקודה צפה. היתרון העיקרי הוא היכולת לייצג טווח רחב יותר של מספרים בגודל מילה נתון, במחיר ויתור על חלק מהדיוק בספרות הפחות משמעותיות. צריך לבחור רמת דיוק שמתאימה לחשיבות הדיוק מול מהירות החישוב.
במחשב "גולם א" היה גודל מילה של 75 סיביות: סיבית אחת לסימן, 10 סיביות למעריך ו-64 סיביות למנטיסה. חישובים במחשבי-על נעשים בדרך כלל בנקודה צפה, ומודדים את מהירותם ב-FLOPS (פעולות נקודה צפה בשנייה).
נקודה צפה היא דרך שבה המחשב כותב מספרים עם חלקים אחרי הנקודה. השיטה עוזרת לכתוב מספרים מאוד גדולים או מאוד קטנים.
מספר בנקודה צפה מחולק ל־מנטיסה, בסיס ומעריך. מנטיסה, הספרות החשובות של המספר. מעריך, אומר כמה להזיז את הנקודה. בסיס, המספר שמוכפלים בו.
לפעמים יש ערכים מיוחדים. אינסוף הוא תוצאה של מספר גדול מדי. NaN (אי־מספר) מיוחס לפעולה שלא הצליחה.
במחשב לא כל מספר יכול להיכתב בדיוק. למשל 0.1 לא נכתב בדיוק בבסיס 2. לכן 0.1 + 0.2 עלול לצאת 0.30000000000000004.
זה קורה כי המחשב מעגל מספרים.
כשמחברים מספר קטן למספר מאוד גדול, הקטן עלול להיעלם. גם סדר החיבור משנה תוצאות.
אם המספר גדול מדי תתקבל תוצאה שנקראת אינסוף. אם הוא קטן מדי הוא יהפוך למספר מאוד קטן או לאפס.
רוב המחשבים משתמשים בתקנים שמגדירים איך לכתוב מספרים אלה. השיטה מאפשרת לעבוד עם טווח רחב של מספרים, אבל לעיתים על חשבון הדיוק.
תגובות גולשים