נקודה צפה

מתוך המכלול, האנציקלופדיה היהודית
גרסה מ־03:41, 2 בספטמבר 2019 מאת דויד (שיחה | תרומות) (החלפת טקסט – " מאוד " ב־" מאד ")
קפיצה לניווט קפיצה לחיפוש

נקודה צפה (floating-point) היא שיטת ייצוג למספרים ממשיים. הנקודה משתמשת בייצוג ספרתי על מנת לשמור ערך המהווה קירוב של מספר ממשי. השיטה יעילה גם לרישום מספרים ארוכים. שיטת הנקודה הצפה היא שיטה מקובלת לייצוג מספרים במחשב.

השם "נקודה צפה" מציין את העובדה שבשיטת ייצוג זו, מספר הספרות משמאל לנקודה העשרונית ומימין לה גמיש, בהתאם למספר המיוצג (להבדיל מייצוג בשיטת נקודה קבועה, שבו מספר הספרות של המספר המיוצג קבוע).

ייצוג בנקודה צפה

מספר רציונלי מיוצג בשיטת הנקודה הצפה על ידי מכפלת מספר שלם או שבר, הנקרא מנטיסה בבסיס בחזקת מעריך.

המספר a מיוצג כ- כאשר:

  • m היא המנטיסה. המנטיסה מיוצגת בדרך כלל באמצעות שבר בשיטת נקודה קבועה, אך היא יכולה להיות גם שלם, המנטיסה נמצאת בדרך כלל בין 1 ל-b.
  • b הוא הבסיס. הבסיס הוא מספר שלם קבוע, ואינו חלק מהייצוג המסוים של a, אלא חלק מאופן הייצוג. מקובל להשתמש בבסיס 2 עבור מחשבים ובבסיס 10 עבור הצגה אנושית טבעית.
  • e הוא המעריך (אקספוננט). המעריך מיוצג באמצעות מספר שלם.

לפי תקן ה-IEEE קיימים ערכים מיוחדים כגון אינסוף ו-NaN (לא מספר - Not A Number). לא בכל המחשבים מיוצגים ערכים אלו באותה צורה בינארית. לרוב, גם האפס מיוצג כערך מיוחד, מכיוון שהוא המספר היחיד בעל אקספוננט 0, ולכן אין הכרח לאפשר ערך 0 בייצוג המנטיסה. לעיתים קיימים שני ערכים: 0+ ו 0-.

אופן ייצוג מסוים בנקודה צפה מורכב, אם כן, מבסיס שלם, מאופנים לייצוג המנטיסה והמעריך ומאוסף ערכים מיוחדים.

דוגמאות:

  • 1012 × 1.78 = 1,780,000,000,000
  • 10-12 × 1.78 = 0.00000000000178
  • 239 × 1.52 = 835,628,837,109.76
  • 101 × 4.8 = 48
  • 25 × 1.5 = 48

יצוג ערך בנקודה צפה מתאים לכתיב מדעי והנדסי מקורב של מספרים גדולים מאד וקטנים מאד. האקספוננט מייצג את סדר הגודל של הערך, והמנטיסה מייצגת את הספרות המשמעותיות שלו. למשל, מהירות האור היא 299,792,458 מטר לשנייה, ערך זה ניתן לרשום גם בקירוב כ-‎2.99×108, כלומר סדר הגודל הוא 108 מטרים ויש כ- 2.99 יחידות מסדר גודל זה.

בעיות בייצוג נקודה צפה

אי-דיוק ושגיאות עיגול

אחת הבעיות המרכזיות של שיטת הנקודה הצפה היא אי-דיוק. למשל, המספר 0.1 לא יכול להיות מיוצג באופן מדויק לפי בסיס 2 (בעיה זו קיימת גם בייצוג בשיטת הנקודה הקבועה בבסיס 2). המספרים שלא ניתנים לייצוג מדויק מיוצגים בעזרת עיגול. בניגוד לשיטת הנקודה הקבועה, שם שגיאת העיגול הגדולה ביותר קבועה, שגיאת העיגול בשיטת הנקודה הצפה גדלה ככל שהמעריך גדל. ערכה של שגיאת העיגול הוא המנטיסה הקטנה ביותר שניתנת לייצוג כפול הבסיס בחזקת המעריך. כדי להקטין ככל האפשר את שגיאת העיגול יש להקטין את המעריך לקטן ביותר האפשרי. ייצוג בנקודה צפה בעזרת המעריך הקטן ביותר האפשרי באופן הייצוג המסוים נקרא מנורמל. בדרך כלל אופן הייצוג של המנטיסה מאפשר רק ייצוג מנורמל.

מידת אי-הדיוק עלולה לגדול ככל שמבוצעות פעולות נוספות על המספר.

ספיגה

תוצאת פעולה בין מספר גדול מאד ומספר קטן מאד יכולה להיות שונה מהמספר הגדול מאד בפחות מרמת אי-הדיוק. למשל, ייתכן שבאופן ייצוג מסוים 1099 = 1 + 1099. במקרה כזה, המספר הגדול "סופג" את המספר הקטן לתוכו.

תכונה זו גורמת לכך שתכונות אריתמטיות מוכרות כגון חוק הקיבוץ וחוק הפילוג לא תקפות בייצוג בנקודה צפה. לכן, ישנה חשיבות לסדר הפעולות, ושני ביטויים זהים לכאורה יפיקו תוצאות שונות. למשל, 1 = 1 + (1099 - 1099) לעומת 0 = (1 + 1099) - 1099.

גלישה וחמיקה

פעולה על מספרים בנקודה צפה עלולים לגרום לגלישה (overflow) אם מעריך התוצאה גדול מהניתן לייצוג. במקרה כזה, התוצאה תהיה בדרך כלל אינסוף (חיובי או שלילי).

כאשר תוצאת פעולה על מספרים בנקודה צפה היא בעלת מעריך קטן מהניתן לייצוג נגרמת חמיקה (underflow). במקרה כזה, התוצאה תהיה סימון מיוחד למספר שונה מ-0 אבל קטן (אם חיובי) או גדול (אם שלילי) מכל מספר חיובי או שלילי אחר.

פעולה לא חוקית

כאשר מבוצעת פעולה לא חוקית, למשל שורש ריבועי של מספר שלילי, התוצאה תהיה NaN לפי תקן ה IEEE.

נקודה צפה במחשב

בזכות האפשרות לייצוג מספרים באופן ספרתי, שיטת הנקודה הצפה היא שיטה מקובלת לייצוג מספרים במחשב (בנוסף לייצוג מספרים בנקודה קבועה). מרבית המחשבים המודרניים מממשים את תקן IEEE 754 לייצוג בנקודה צפה.

יתרונו העיקרי של ייצוג בנקודה צפה על-פני ייצוג בנקודה קבועה הוא היכולת לייצג טווח רחב הרבה יותר של מספרים (בגודל נתון של מילה), הנחוץ בחישובים במספרים גדולים מאוד, או קרובים מאד לאפס. במחשב "גולם א", למשל, היה גודל מילה גדול במיוחד של 75 סיביות, והחומרה ביצעה חישובים בשיטת נקודה צפה, שבה סיבית אחת לסימן, 10 סיביות למעריך ו־64 סיביות למנטיסה. כך יכלו לייצג מספרים שגודלם עד 21024 × 263, לעומת ייצוג מספרים שגודלם עד 274 בלבד בייצוג בנקודה קבועה.

חישובים במחשבי-על נעשים בדרך כלל באריתמטיקה של נקודה צפה, ולכן מהירותם של מחשבי-על נמדדת ב-FLOPS (קיצור של floating point operations per second).

בזיכרון המחשב נקודה צפה נשמרת בשיטת סדר בתים כאשר כל 8 ביטים צמודים נשמרים בכתובת מסוימת בסדר מסוים.

ראו גם