•✿♥lostlove♥✿•
New member
آموزش C (بخش 5) :: تبدیل انواع متغیرها
وقتی که متغیرهای با نوع های مختلف در یک عبارت با یکدیگر ترکیب می شوند باید تبدیل نوع صورت گیرد . قاعده کلی این است که نوع های با طول کوچک تر به نوع هایی با طول بزرگتر تبدیل می شوند . مثلا” اگر دو متغیر از نوع کاراکتری و عددی صحیح با یکدیگر ترکیب شوند ، نوع کاراکتری به عددی صحیح تبدیل می شود .
علاوه بر تبدیل انواع در عبارات ، در احکام انتساب نیز ممکن است تبدیل انواع صورت گیرد . در تبدیل انواع اطلاعاتی از بین می روند که باید در نتیجه حاصل از احکام انتساب دقت کافی به خرج داد. در ذیل تبدیل انواع در احکام انتساب مشاهده می شود :
نمی شود . اطلاعاتی که ممکن است در تبدیل انواع از بین بروند . در جدول (۱) آمده است .

علاوه بر تبدیل انواع در عبارات ، در احکام انتساب نیز ممکن است تبدیل انواع صورت گیرد . در تبدیل انواع اطلاعاتی از بین می روند که باید در نتیجه حاصل از احکام انتساب دقت کافی به خرج داد. در ذیل تبدیل انواع در احکام انتساب مشاهده می شود :
int x ;
char ch;
float f ;
ch= x ;
x= f ;
f= ch ;
f= x ;
کلیه احکام انتساب فوق قابل انجام بوده و از طرف کامپایلر زبان C هیچ گونه خطایی گزارش نمی شود . اطلاعاتی که ممکن است در تبدیل انواع از بین بروند . در جدول (۱) آمده است .
نوع منبع | نوع مقصد | اطلاعاتی که ممکن است از بین برود |
ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ |
| signed char | char اگر مقدار بزرگتر از۱۲۷باشد مقصد منفی خواهد شد |
ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ |
| short 8 | char بیت با ارزش |
ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ |
| int 8 | char بیت با ارزش |
ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ |
| long int | char۲۴بیت با ارزش |
ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ |
| long int | int۱۶بیت با ارزش |
ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ |
| float | int قسمت کسری یا بیشتر و نتیجه حاصل گرد می شود |
ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ |
| double | float قسمت کسری و یا بیشتر و نتیجه حاصل گرد می شود |
ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ
جدول (۱) . تبدیل انواع
دو نکته را باید در مورد تبدیل انواع ( جدول (۱) ) به خاطر داشته باشیم :
۱ بعضی از تبدیل انواع در جدول فوق وجود ندارد مثل doubleبه int . در این موارد می توان double را به float تبدیل کرده و سپس float را به int تبدیل نمود.
۲ وقتی نوع بزرگتری به نوع کوچکتری انتساب داده می شود . قسمتی از اطلاعات از دست می روند . همان طور که می دانیم ، معمولا” اعداد صحیح (int) در ۲ بایت و اطلاعات از نوع char در یک بابت ذخیره می شوند .
وقتی یک متغیر int به یک متغیر char انتساب داده می شود بایت کم ارزش متغیر از نوع int به متغیر char منتقل شده ولی با ارزش متغیر int در متغیر char جایی میگوییم در انتساب متغیرintبه char ، ۸، بیت با ارزش از دست میرود.
۱ بعضی از تبدیل انواع در جدول فوق وجود ندارد مثل doubleبه int . در این موارد می توان double را به float تبدیل کرده و سپس float را به int تبدیل نمود.
۲ وقتی نوع بزرگتری به نوع کوچکتری انتساب داده می شود . قسمتی از اطلاعات از دست می روند . همان طور که می دانیم ، معمولا” اعداد صحیح (int) در ۲ بایت و اطلاعات از نوع char در یک بابت ذخیره می شوند .
وقتی یک متغیر int به یک متغیر char انتساب داده می شود بایت کم ارزش متغیر از نوع int به متغیر char منتقل شده ولی با ارزش متغیر int در متغیر char جایی میگوییم در انتساب متغیرintبه char ، ۸، بیت با ارزش از دست میرود.