מספר נקודה צפה: מה זה? פשוט הוסבר עם דוגמאות
בטיפ המעשי הזה אנו מראים לכם מה מספר נקודה צפה ואיך הוא שונה ממספר נקודה קבועה.
מספר נקודה צפה: מה זה?
במדעי המחשב, מספר הנקודות הצפות משמש לרוב למכשירי מדידה שאמורים לעבוד בדיוק מסוים.
- מספר נקודה צפה (או "מספר נקודה צפה") הוא ייצוג של מספר באמצעות סימון מעריכי. במקרים חריגים זה עובד רק בערך. אתה יכול גם לייצג את המספר 1230000 עם המספר 1.23 - 10⋅.
- ה- 1.23 נקרא "מנטיסה". ה- 10 הוא "הבסיס" וה -6 הוא "המפיץ". אגב, ניתן להוסיף שלט למנטסה. עם זאת, אתה יכול גם להחיל את כל העניין על המערכת הכפולה. אתה יכול גם לייצג את המספר 10101100 עם המספר 1.0101100 ⋅ 2⁷. המחשב מאחסן רק את השלט, המנטיסה והמפתח.
- מחשבים בדרך כלל מזיזים את הפסיק קדימה ואחורה עד שיש רק 1 לפני הפסיק. ואז המחשב האישי צריך רק לשמור את המקומות העשרוניים של המנטיסה והמפתח.
- כך שניתן יהיה לשמור את המפתח כמספר חיובי, להוסיף מספר קבוע, מה שנקרא הטיה. המוצפן הקטן ביותר האפשרי של המקום לפני הנקודה העשרונית (- הטיה) נשמר כ- 0.
- בניגוד למספר של הנקודה הקבועה, הפסיק אינו נמצא בנקודה קבועה במספר של נקודה צפה.
Half, Float & Double - קידוד נפוץ של מספרים של נקודה צפה
בהחלט נתקלת בשלושת המונחים האלה, במיוחד כשאתה מתכנת עם ארדואינו. אלה ייצוגים סטנדרטיים.
- סוג הנתונים "חצי" הוא מספר של 16 סיביות. החלק השמאלי ביותר אחראי לשלט. לאקספקטנט יש 5 ביטים והמנטיסה 10. ההטיה המשמשת היא 15. מכיוון שהקטע הראשון של המנטיסה הוא (כמעט) תמיד 1, זה לא נשמר.
- סוג הנתונים "צף" (או "יחיד") הוא מספר 32 סיביות. גם כאן משתמשים מעט לשלט. עם זאת, למערך 8 סיביות (הטיה = 127) והמנטיסה 23.
- סוג הנתונים "כפול" משתמש גם מעט עבור השלט. עם זאת כאן יש לאנשי המפתח 11 ביטים (הטיה = 1023) והמנטיסה אפילו 52 ביטים. בסך הכל מדובר ב 64 ביטים, כלומר 8 בתים.
- בנוסף לשלושת סוגי הנתונים הנפוצים הללו, ישנם רבים נוספים. עם זאת, לרוב לא משתמשים בהן כיוון שהדיוק של חצי, צף וכפול כבר טוב מספיק.
המר מספרים עשרוניים למספרי נקודה צפים - איך זה עובד
לבסוף, אנו רוצים להראות לכם כיצד תוכלו להמיר מספר עשרוני רגיל למספר של נקודה צפה.
- בדוגמה זו אנו משתמשים במספר העשרוני 18.4. המספר שלפני הנקודה העשרונית מועבר לראשונה למערכת הכפולה. כתוצאה, עליכם לקבל (10010) ₂.
- אז אתה צריך להמיר את ה- 0.4. הכפלו תחילה את ה- 0.4 ב- 2. תקבלו 0.8 כתוצאה. רשמו את המספר שלפני הפסיק. במקרה זה זהו 0. ואז הכפיל את ה- 0.8 ב- 2. הפעם אתה מקבל 1.6 כתוצאה. רשמו את ה -1 והמשיכו לחשב עם 0.6. לאחר זמן מה תבחין שהתבנית חוזרת על עצמה (בדוגמה זו). לבסוף, רשמו את כל המספרים מלמעלה למטה: 011001100110 ...
- ואז להוסיף את המספרים יחד: הוסף גם (⋅ 2⁰) כך שתקבל 10010.01100110 ... ⋅ 2⁰. לאחר מכן הזיז את הפסיק עד שיש רק 1 לפני הנקודה העשרונית, וגם שנה את הכוח באופן מתאים. כתוצאה, עליכם לקבל 1.001001100110 ... ⋅ 2⁴ מכיוון שהעברת את הנקודה העשרונית 4 מקומות שמאלה. שלב זה נקרא גם "נורמליזציה".
- בדוגמה זו אנו משתמשים בסוג הנתונים "float". אז הוסף את ערך ההטיה המתאים לאקספקט שלך. עליכם להמיר גם את תוצאת החישוב 4 + 127 = 131 למספר בינארי. המספר 131 הוא המספר 10000011 במערכת הכפולה.
- עכשיו אתה יכול לרשום את המספר המוגמר של נקודת הצף. ראשית כתוב את החלק עבור השלט. מכיוון שזה מספר חיובי, הסיבית הראשונה היא 0. ואז צריך לכתוב 131. כל העניין מתאים באופן מושלם במקרה זה, מכיוון שמספר זה דורש 8 סיביות וניתן להשיג 8 סיביות לצוף. לבסוף, עליכם לרשום את 23 הסיביות הראשונות של המנטיסה, מכיוון שלמנטיסה 23 ביטים זמינים לציפה.
- לכן נקודת הצף המוגמרת שלך צריכה להיות המספר 01000001100100110011001100110011. קצת יותר ברור הוא המספר 0 | 10000011 | 00100110011001100110011.
המר מספר נקודה צפה למספר עשרוני - הנה איך
לבסוף, ברצוננו להראות לכם כיצד תוכלו להמיר שוב מספר של נקודה צפה למספר עשרוני. לשם כך ניקח את המספר 1000001100100110011001100110011.
- ראשית מלא את המספר (הקדמי) באפסים עד לקבלת מספר 16, 32 או 64 סיביות. במקרה זה זהו 01000001100100110011001100110011.
- הספרה הראשונה עומדת על השלט. אז המספר שלנו חיובי.
- ואז כתוב את 8 הספרות הבאות (במקרה זה) וחסר את ההטיה. (10000011) ₂ = 131 → 131 - 127 = 4 → אז יש "⋅ 2⁴" מאחור.
- כעת כתוב "1", ואז את כל המספרים שנותרו, כמו גם את "⋅ 2⁴": 1.00100110011001100110011 ⋅ 2⋅
- ואז הזיז את הפסיק 4 מקומות ימינה, כך שתוכל להשמיט את "⋅ 2⁴": 10010.0110011001100110011
- בשלב הבא, המירו 10010 למספר שלם כרגיל. אתה מקבל 18.
- עכשיו עליכם להמיר את המקומות העשרוניים. לספרה הראשונה אחרי הפסיק יש את הערך 1: 2¹, הספרה השנייה 1: 2² וכן הלאה. הוסף את הערכים, והמספר שלפני הפסיק נותן לך את המספר 18.3999996185302734375.
בטיפ המעשי הבא נראה לכם כיצד תוכלו להמיר אותיות ASCII למספרים בינאריים.