המרת טיפוסים חלק 1
חלק מהיחידה יסודות במסלול ה-C של Coddy. שיעור 13 מתוך 63.
המרת טיפוסים ב-C מאפשרת לך להמיר ערך מסוג נתונים אחד לסוג נתונים אחר. הדבר שימושי כשצריך לבצע פעולות בין סוגי נתונים שונים.
יש שני סוגים עיקריים של המרת טיפוסים:
- המרה משתמעת (אוטומטית)
- המרה מפורשת (ידנית)
נתחיל בהמרה מרומזת:
המרה משתמעת מתבצעת באופן אוטומטי כשממירים מטיפוס נתונים קטן יותר לטיפוס גדול יותר:
int num = 10;
double decimal_num;
// המרת טיפוסים מרומזת מ-int ל-double
decimal_num = num;לאחר הרצת הקוד שלמעלה, ל־decimal_num יהיה הערך 10.0
זה עובד כי double יכול לאחסן את כל הערכים האפשריים של int בלי לאבד נתונים. ההמרה בטוחה, ולכן C מבצעת אותה באופן אוטומטי.
מסלולי המרה מרומזת נפוצים:
- char → int → long → float → double
עכשיו נבחן המרה מפורשת:
המרה מפורשת מתבצעת ידנית על ידי הצבת סוג הנתונים הרצוי בסוגריים לפני הערך שברצונך להמיר. הדבר נחוץ בעת המרה מסוג נתונים גדול יותר לקטן יותר, שבה עלול להתרחש אובדן נתונים:
double decimal_num = 5.65;
int num;
// המרת טיפוס מפורשת מ-double ל-int
num = (int)decimal_num;לאחר הפעלת הקוד שלמעלה, הערך של num יהיה 5
שימו לב שהחלק העשרוני נחתך (ולא מעוגל) בעת המרה מ-double ל-int. התחביר להמרה מפורשת הוא:
(target_type) valueמכיוון שהמרה זו עלולה לגרום לאובדן נתונים, C דורשת ממך לבצע אותה במפורש. כך אתה מודיע למהדר שאתה מודע לאובדן הנתונים האפשרי.
אתגר
קלכתוב תוכנית ש:
- מכריזה על משתנה double בשם
resultומגדירה את ערכו ל־5.65 - מכריזה על משתנה int בשם
grade - מקצה את הערך של
resultל־gradeבאמצעות המרה מפורשת - מדפיסה את הערך של
gradeעם ההודעה "The grade is: " באמצעות printf
נסו בעצמכם
#include <stdio.h>
int main() {
double result = 5.65;
int grade;
// השתמש בהמרת טיפוסים מפורשת כדי להמיר את result מ-double ל-int ולהציב אותו ב-grade
printf("The grade is: %d\n", grade);
return 0;
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
תרגלו בעצמכם: קומפיילר C אונליין