נקודה צפה

מתוך ויקיפדיה, האנציקלופדיה החופשית
קפיצה אל: ניווט, חיפוש

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

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

ייצוג בנקודה צפה[עריכת קוד מקור | עריכה]

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

המספר a מיוצג כ- a = m × be כאשר:

  • 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 ביטים צמודים נשמרים בכתובת מסוימת בסדר מסוים.

ראו גם[עריכת קוד מקור | עריכה]