בנושא זה, נדון בהמרה של סוג נתונים אחד לאחר בשפת התכנות C++. המרת סוג הוא התהליך הממיר את סוג הנתונים המוגדר מראש של משתנה אחד לסוג נתונים מתאים. הרעיון המרכזי מאחורי המרת סוג הוא להמיר שני משתנים מסוג נתונים שונים לסוג נתונים בודד כדי לפתור ביטויים מתמטיים ולוגיים בקלות ללא כל אובדן נתונים.
ממשק ב-java
לדוגמה, אנו מוסיפים שני מספרים, כאשר משתנה אחד הוא מסוג int ואחר מסוג float; אנחנו צריכים להמיר או להגדיר את המשתנה int ל-float כדי לגרום לשני סוגי הנתונים לצוף כדי להוסיף אותם.
ניתן לבצע המרת סוג בשתי דרכים ב-C++, האחת היא המרת סוג מרומז , והשני הוא המרת סוג מפורש . ההמרות הללו נעשות על ידי המהדר עצמו, הנקרא סוג מרומז או המרת סוג אוטומטי. ההמרה, הנעשית על ידי המשתמש או דורשת הפרעות משתמש הנקראות המרה מפורשת או המרה מוגדרת על ידי המשתמש. הבה נדון בהמרת הסוג המרומז והמפורש ב-C++.
המרת סוג מרומז
המרת הסוג המרומז היא סוג ההמרה שנעשה אוטומטית על ידי המהדר ללא כל מאמץ אנושי. המשמעות היא שהמרה מרומזת ממירה אוטומטית סוג נתונים אחד לסוג אחר בהתבסס על כמה כללים מוגדרים מראש של המהדר C++. לפיכך, הוא ידוע גם בשם המרת סוג אוטומטית .
לדוגמה:
int x = 20; short int y = 5; int z = x + y;
בדוגמה שלמעלה, ישנם שני משתנים מסוג נתונים שונים, x, ו-y, כאשר x הוא סוג int, וה-y הוא מסוג int קצר. והמשתנה z שנוצר הוא גם סוג של מספר שלם המאחסן משתני x ו-y. אבל המהדר C++ ממיר באופן אוטומטי את הערך של סוג הנתונים בדרגה נמוכה יותר (int int) לסוג גבוה יותר (int) לפני שמתקבל סכום של שני מספרים. לפיכך, הוא נמנע מאובדן נתונים, הצפה או אובדן סימנים בהמרה מרומזת של C++.
סדר הטיפוס בהמרה מרומזת
להלן הסדר הנכון של סוגי נתונים מדרג נמוך לדרג גבוה יותר:
bool -> char -> short int -> int -> unsigned int -> long int -> unsigned long int -> long long int -> float -> double -> long double
תוכנית להמרת int לסוג צף באמצעות המרת סוג מרומז
בואו ניצור תוכנית להמרת סוגי נתונים מדורגים קטנים יותר לסוגים גבוהים יותר באמצעות המרת סוג מרומז.
Program1.cpp
#include using namespace std; int main () { // assign the integer value int num1 = 25; // declare a float variable float num2; // convert int value into float variable using implicit conversion num2 = num1; cout << ' The value of num1 is: ' << num1 << endl; cout << ' The value of num2 is: ' << num2 << endl; return 0; }
תְפוּקָה
The value of num1 is: 25 The value of num2 is: 25
תוכנית להמיר סוג נתונים כפול ל-int באמצעות המרת סוג מרומז
בואו ניצור תוכנית להמרת סוג הנתונים הגבוה יותר לסוג נמוך יותר באמצעות המרת סוג מרומז.
Program2.cpp
#include using namespace std; int main() { int num; // declare int type variable double num2 = 15.25; // declare and assign the double variable // use implicit type conversion to assign a double value to int variable num = num2; cout << ' The value of the int variable is: ' << num << endl; cout << ' The value of the double variable is: ' << num2 << endl; return 0; }
תְפוּקָה
The value of the int variable is: 15 The value of the double variable is: 15.25
בתוכנית לעיל, הכרזנו על num כסוג מספר שלם ו- num2 כמשתנה סוג הנתונים הכפול ולאחר מכן הקצינו את num2 כ-15.25. לאחר מכן, אנו מקצים ערך num2 למשתנה num באמצעות אופרטור ההקצאה. לכן, מהדר C++ ממיר אוטומטית את ערך הנתונים הכפולים לסוג המספרים השלמים לפני שמקצים אותו למשתנה num ומדפיס את הערך הקטוע כ-15.
mylivecricket ב
המרה מסוג מפורש
המרות שדורשות התערבות המשתמש לשנות את סוג הנתונים של משתנה אחד למשנהו, נקרא המרת סוג מפורש . במילים אחרות, המרה מפורשת מאפשרת למתכנת לשנות או להקרין באופן ידני את סוג הנתונים ממשתנה אחד לסוג אחר. לפיכך, זה ידוע גם כ-typecasting. בדרך כלל, אנו מאלצים את ההמרה מסוג מפורש להמיר נתונים מסוג אחד לאחר מכיוון שהיא אינה פועלת לפי כלל ההמרה המרומז.
המרת הסוג המפורש מחולקת לשתי דרכים:
- המרה מפורשת באמצעות אופרטור הקאסט
- המרה מפורשת באמצעות אופרטור ההקצאה
תוכנית להמרת ערך צף לסוג int באמצעות אופרטור ה-cast
מפעיל שחקנים: בשפת C++, אופרטור cast הוא אופרטור לא-נארי הממיר בכוח סוג אחד לסוג אחר.
הבה נשקול דוגמה להמרת סוג הנתונים הצף לסוג int באמצעות אופרטור ה-cast של ההמרה המפורשת בשפת C++.
Program3.cpp
#include using namespace std; int main () { float f2 = 6.7; // use cast operator to convert data from one type to another int x = static_cast (f2); cout << ' The value of x is: ' << x; return 0; }
תְפוּקָה
The value of x is: 6
תוכנית להמיר סוג נתונים אחד לאחר באמצעות אופרטור ההקצאה
הבה נשקול דוגמה להמרת סוג הנתונים של משתנה אחד למשנהו באמצעות אופרטור ההקצאה בתוכנית C++.
Program4.cpp
#include using namespace std; int main () { // declare a float variable float num2; // initialize an int variable int num1 = 25; // convert data type from int to float num2 = (float) num1; cout << ' The value of int num1 is: ' << num1 << endl; cout << ' The value of float num2 is: ' << num2 << endl; return 0; }
תְפוּקָה
The value of int num1 is: 25 The value of float num2 is: 25.0