ההבדל בין סוג ליהוק לסוג המרה

מְחַבֵּר: Laura McKinney
תאריך הבריאה: 1 אַפּרִיל 2021
תאריך עדכון: 4 מאי 2024
Anonim
Type Casting vs Type Conversion|Difference between Type Casting and Type Conversion
וִידֵאוֹ: Type Casting vs Type Conversion|Difference between Type Casting and Type Conversion

תוֹכֶן


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

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

  1. טבלת השוואה
  2. הגדרה
  3. הבדלים עיקריים
  4. סיכום

טבלת השוואה:

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

המרה מצמצמת.הרחבת ההמרה.
דוגמאint a;
בייט ב;
...
...
b = (בתים) א;
int a = 3;
לצוף b;
b = a; // ערך ב b = 3.000.


הגדרת יציקת סוג

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

הצהרה:

destination_type = (target_type) משתנה / ערך // סוג יעד הוא סוג בו ברצונך להמיר את סוג המקור, הוא תמיד סוג היעד.

דוגמא

בואו נבין זאת עם דוגמא. אתה רוצה להמיר את סוג הנתונים 'int' ל'בית '. כעת, מכיוון ש- 'בייט' קטן מ- 'int', המרת סוג אינה מותרת. כאן, היינו צריכים להמיר באופן מרומז את 'int' ל'בייט 'באמצעות מפעיל הליהוק' () '. מכיוון ש- "אינט" גדול יותר מ"בית ", גודל ה"אינט" יקטן לטווח "int mod byte".


int a; בייט ב; ... ... b = (בתים) א;

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

הגדרת המרה מסוג

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

  • המקור וסוג היעד חייבים להיות תואמים.
  • סוג היעד חייב להיות גדול יותר מאשר סוג המקור.

שני תנאים אלה צריכים לעמוד בכדי להשיג המרה מסוג, והמרה מסוג זה נקראת 'הרחבת המרה', שכן סוג קטן יותר מומר לסוג גדול יותר, הרחבת הסוג מתרחשת. עבור המרה הולכת וגדלה זו, סוגים מספריים כמו 'int', 'float' תואמים זה את זה בעוד שמספר ל char ו- boolean או char ל- boolean אינו תואם.

דוגמא

דוגמה זו תביא מבט טוב יותר לכך

int a = 3; לצוף b; b = a; // ערך ב b = 3.000.

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

  1. ההבדל הבסיסי המבדיל בין יציקת סוג להמרה מסוג הוא שהיציקת סוג היא המרה של סוג לסוג אחר, הנעשית על ידי המתכנת. מצד שני, המרת הסוגים היא המרה של סוג אחד לאחר, הנעשית על ידי המהדר תוך כדי קומפילציה.
  2. ניתן ליישם סוג הליהוק על סוגי הנתונים, שאולי אינם תואמים זה לזה. לעומת זאת, ניתן להחיל המרת סוגים רק על סוגי הנתונים התואמים זה לזה.
  3. המרה של סוג אחד למשנהו בגלישה מסוג מחייבת את מפעיל הליהוק "()" בעוד שהמרת סוג נתונים אחד למשנהו בהמרת סוג אינה מצריכה שום מפעיל.
  4. בעת המרת סוג נתונים אחד למשנהו בגלישה מסוג, סוג היעד יכול להיות גדול או קטן יותר מאשר סוג המקור. לעומת זאת, סוג היעד חייב להיות גדול יותר מאשר סוג המקור בהמרת הסוג.
  5. ההמרה של סוג אחד לסוג אחר נעשית תוך קידוד ביציקת סוג. לעומת זאת, בהמרת סוג, ההמרה של סוג אחד לסוג אחר נעשית במפורש במהלך ההרכבה.
  6. ליהוק סוג נקרא המרת צמצום מכיוון שכאן סוג היעד יכול להיות קטן יותר מסוג המקור. שלא כמו, המרת סוג נקראת הרחבת המרה מכיוון שכאן, סוג היעד חייב להיות גדול יותר מאשר סוג המקור.

סיכום:

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