שני המונחים סוג ליהוק וה סוג המרה משמשים בתוכנית להמרת סוג נתונים אחד לסוג נתונים אחר. המרת סוג הנתונים אפשרית רק על ידי המהדר כאשר הם תואמים זה לזה. בואו נדון בהבדל בין ליהוק סוג והמרת סוג בכל שפת תכנות.
ניק בלבד
מהו סוג ליהוק?
כאשר סוג נתונים מומר לסוג נתונים אחר על ידי מתכנת או משתמש תוך כתיבת קוד תוכנית של כל שפת תכנות, המנגנון ידוע בשם סוג ליהוק . המתכנת משתמש בו באופן ידני כדי להמיר סוג נתונים אחד לאחר. הוא משמש אם ברצוננו לשנות את סוג נתוני היעד לסוג נתונים אחר. זכור שסוג נתוני היעד חייב להיות קטן יותר מסוג נתוני המקור. מכאן שהיא נקראת גם המרה מצמצמת.
תחביר:
Destination_datatype = (target_datatype) variable; (data_type) it is known as casting operator
Target_datatype: זהו סוג הנתונים שבו אנו רוצים להמיר את סוג נתוני היעד. המשתנה מגדיר ערך שיש להמיר בסוג target_data. בואו נבין את הרעיון של יציקת סוג עם דוגמה.
נניח שאנו רוצים להמיר את ה לָצוּף הקלד נתונים לתוך int סוג מידע. כאן, סוג נתוני היעד קטן מנתוני המקור בגלל הגודל של int הוא 2 בתים, וגודל ה- לָצוּף סוג הנתונים הוא 4 בתים. וכשאנחנו משנים אותו, הערך של המשתנה הצף נחתך ומומר למשתנה מספר שלם. ניתן לבצע ליהוק עם סוג נתונים תואם ולא תואם.
מערכי תכנות java
float b = 3.0; int a = (int) b; // converting a float value into integer
בואו נבין את סוג הליהוק דרך תוכנית C.
AreaOfRetangle.c
#include #include void main() { printf(' Welcome to Javatpoint tutorials '); float x = 3.5, y = 4.5; // the size of float variable is 4 byte. int area; // the size of the int variable is 2 bytes. area = (int) x * y; // after conversion the product converts into integer printf(' Area of a Rectangle is : %d', area); printf(' Here, we convert float data type into the Int data type'); getch(); }
תְפוּקָה:
מהי המרת סוג?
אם סוג נתונים מומר אוטומטית לסוג נתונים אחר בזמן הקומפילציה מכונה המרת סוג. ההמרה מתבצעת על ידי המהדר אם שני סוגי הנתונים תואמים זה לזה. זכור שסוג נתוני היעד לא צריך להיות קטן יותר מסוג המקור. זה ידוע גם בשם הִתרַחֲבוּת המרה של סוג הנתונים.
מהו שם משתמש
בואו נבין את המרת הסוג בעזרת דוגמה.
נניח, יש לנו int סוג נתונים ורוצים להמיר אותו ל-a לָצוּף סוג מידע. אלו סוגי נתונים התואמים זה את זה מכיוון שהסוגים שלהם הם מספריים, והגודל של int הוא 2 בתים שהוא קטן יותר מסוג הנתונים הצפים. לפיכך, המהדר ממיר אוטומטית את סוגי הנתונים מבלי לאבד או לקצץ את הערכים.
int a = 20; Float b; b = a; // Now the value of variable b is 20.000 /* It defines the conversion of int data type to float data type without losing the information. */
בדוגמה שלמעלה, סוג הנתונים int מומר ל-float, שגודלו גדול יותר מ-int, ומכאן שהוא מרחיב את סוג נתוני המקור.
בואו נבין את המרת סוג באמצעות תוכנית C.
#include #include void main() { printf(' Welcome to Javatpoint tutorials '); int x = 3, y = 4; // the size of int variable is 2 byte. float area; // the size of float variable is 4 bytes. area = x * y; /* It is a type conversion that automatically converted by the compiler at the compile time of a program. */ printf(' Area of a Rectangle is : %f', area); printf(' Here, we convert int data type to the float data type'); getch(); }
תְפוּקָה:
ההבדל בין יציקת סוג והמרת סוג
S.N. | סוג ליהוק | סוג המרה |
---|---|---|
1 | ליהוק סוג הוא מנגנון שבו סוג נתונים אחד מומר לסוג נתונים אחר באמצעות אופרטור ליהוק () על ידי מתכנת. | המרת סוג מאפשרת למהדר להמיר סוג נתונים אחד לסוג נתונים אחר בזמן הידור של תוכנית או קוד. |
2 | ניתן להשתמש בו הן בסוג נתונים תואם והן בסוג נתונים לא תואם. | המרת סוגים משמשת רק עם סוגי נתונים תואמים, ולפיכך היא אינה דורשת מפעיל ליהוק. |
3 | זה דורש מתכנת להטיל ידנית נתונים אחד לסוג אחר. | זה לא מצריך התערבות של מתכנת כדי להמיר סוג נתונים אחד לאחר, מכיוון שהמהדר מבצע אותם באופן אוטומטי בזמן הריצה של תוכנית. |
4 | הוא משמש בעת עיצוב תוכנית על ידי המתכנת. | הוא משמש או מתרחש בזמן הידור של תוכנית. |
5 | בעת העברה של סוג נתונים אחד לאחר, סוג נתוני היעד חייב להיות קטן מנתוני המקור. | בעת המרת סוג נתונים אחד לאחר, סוג היעד צריך להיות גדול יותר מסוג נתוני המקור. |
6 | זה ידוע גם כהמרה מצמצמת מכיוון שסוג נתונים אחד גדול יותר ממיר לסוג נתונים קטן יותר. | זה ידוע גם כהמרה הרחבה מכיוון שסוג נתונים אחד קטן יותר ממיר לסוג נתונים גדול יותר. |
7 | זה יותר אמין ויעיל. | זה פחות יעיל ופחות אמין. |
8 | קיימת אפשרות לאיבוד נתונים או מידע במהלך יציקת סוג. | בהמרת סוג, לא סביר שהנתונים יאבדו בעת המרה מסוג נתונים קטן לגדול. |
8 | float b = 3.0; int a = (int) b | int x = 5, y = 2, c; float q = 12.5, p; p = q/x; |