הבדל מפתח - צף לעומת כפול
בתכנות, נדרש לאחסן נתונים. הנתונים מאוחסנים בזיכרון. מיקומי זיכרון המאחסנים נתונים נקראים משתנים. כל מיקום זיכרון יכול לאחסן סוג מסוים של נתונים. גודל הזיכרון עבור כל סוג נתונים שונה. בשפות תכנות כמו Python, המתכנת לא צריך להצהיר על סוג המשתנה. בשפות תכנות כמו Java, המתכנת צריך להצהיר על סוג המשתנה. ישנם מספר סוגי נתונים כגון char, int, float וכפול. סוג נתוני ה-char משמש לאחסון ערך תו בודד. סוג הנתונים int משמש לאחסון ערכים מספריים ללא נקודות עשרוניות.סוגי הנתונים הצפים והכפולים משמשים לאחסון ערכים מספריים עם נקודות עשרוניות. מאמר זה דן בהבדל בין צף לכפול. ההבדל העיקרי בין float לכפול הוא ש-float הוא סוג נתוני נקודה צפה IEEE 754 דיוק יחיד של 32 סיביות בעוד כפול הוא סוג נתונים של נקודה צפה IEEE 754 דיוק כפול של IEEE 754.
מה זה לצוף?
הצף הוא נקודה צפה יחידה של 32 סיביות. זהו סוג נתונים מוגדר מראש הנתמך על ידי שפות תכנות כגון Java. כדי להכריז על משתנה צף, נעשה שימוש במילת המפתח 'צף'. לכן לא ניתן להשתמש בו עבור שמות מזהים כגון שמות שיטות ושמות משתנים. עיין בתוכנית שלהלן.
איור 01: תוכנית Java עם סוג נתונים צף
לפי התוכנית לעיל, המספר הוא משתנה שיכול לאחסן מספר נקודה צפה. כאן, -20.5f משמש במקום -20.5. -20.5 הוא מילולי כפול. כדי לציין שהמהדר לאחסן את הערך כצף, המתכנת צריך לכתוב f או F.
מה זה כפול?
הכפול הוא נקודה צפה 64 סיביות דיוק כפול. זהו סוג נתונים מוגדר מראש. כדי להכריז על משתנה כפול, משתמשים במילת המפתח 'כפול'. לכן, לא ניתן להשתמש בו עבור שמות מזהים כגון שמות שיטות ושמות משתנים. עיין בתוכנית שלהלן.
איור 02: תוכנית Java עם סוג נתונים כפול
לפי התוכנית לעיל, המספר הוא משתנה מסוג כפול. הדפסת המספר תיתן את הפלט כ-20.5. נדרשות 64 סיביות בזיכרון כדי לאחסן את הערך. אם המתכנת כתוב -20.5, הוא נחשב ככפול. הוא יכול גם לכתוב את זה בתור -20.5d. כתיבת 'd' היא אופציונלית.
ניתן לבצע ליהוק סוג על סוגי נתונים. זהו תהליך של המרת סוג נתונים אחד לסוג נתונים אחר.בעת הקצאת סוג נתונים קטן יותר לסוג נתונים גדול יותר, אין צורך בהעברה. ההרחבה מתרחשת בבתים, קצר, int, ארוך, צף, סדר כפול. כאשר מקצים סוג נתונים גדול יותר לסוג נתונים קטן, יש צורך לבצע את הליהוק.
איור 03: ליהוק
לפי התוכנית לעיל, ל- num1 ו- num2 יש סוגי נתונים צפים. הסיכום מוקצה לסכום המשתנה. זה ציפה. מכיוון ש-float הוא סוג נתונים קטן יותר בהשוואה לכפול, ניתן להקצות אותו ישירות למספר המשתנה הכפול ללא יציקת סוג.
ה-x ו-y יכולים לאחסן סוגי נתונים כפולים. הסיכום מוקצה למשתנה z. זה יכול גם לאחסן כפול. נדרשת יציקת סוג כדי להקצות סוג נתונים גדול יותר לסוג נתונים קטן יותר. לכן, כדי לאחסן את הערך הכפול למשתנה float, יש צורך לבצע casting כיוון שכפול הוא סוג נתונים גדול יותר מאשר float.
מהם הדמיון בין צף לכפול?
- שניהם צף וגם כפול הם סוגי נתונים מוגדרים מראש הנתמכים על ידי שפות תכנות כגון Java.
- שני סוגים צפים וגם סוגים כפולים אינם משמשים עבור דיוק כגון מטבע.
מה ההבדל בין ציפה לכפולה?
צף מול כפול |
|
הצף הוא סוג נתונים של נקודה צפה 32 סיביות דיוק יחידה של IEEE 754. | הכפול הוא סוג נתונים כפול דיוק של 64 סיביות IEEE 754 נקודה צפה. |
מספר בתים | |
הצף הוא באורך 4 בתים. | הכפול הוא באורך 8 בתים. |
ערכי ברירת מחדל | |
ערך ברירת המחדל של float הוא 0.0f. | ערך ברירת המחדל של כפול הוא 0.0d. |
מילת מפתח | |
מילת המפתח 'צף' משמשת להצהרה על ערך צף. | מילת המפתח 'כפול' משמשת להצהרה על ערך כפול. |
זיכרון נדרש | |
הצף דורש פחות זיכרון מכפול. | הכפיל דורש יותר זיכרון מאשר לצוף. |
סיכום – צף מול כפול
בתכנות, יש צורך לאחסן נתונים. נתונים אלה מאוחסנים במיקומי זיכרון ונקראים משתנים. כל משתנה מאחסן נתונים מסוג מסוים. ישנם סוגי נתונים כגון int, char, double ו-float וכו'. מאמר זה דן בהבדל בין שני סוגי נתונים שהם float וכפול.ההבדל בין float לכפול הוא ש-float הוא סוג נתונים, שהוא נקודה צפה יחידה של 32 סיביות IEEE 754 בעוד כפול הוא סוג נתונים, שהוא נקודה צפה 64 סיביות דיוק כפולה של IEEE 754.