دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۲۵
  • اسفند

جلسه ۲۴ : تبدیل نوع در زبان C

  • دسته‌بندی‌ها :
جلسه ۲۴ : تبدیل نوع در زبان C
    • جزئیات
    • نوع محتواآموزشی

      مقدمه

      با سلام خدمت تمامی دوستان عزیز سایت پی وی لرن .و کاربرانی که دوره کامل آموزش زبان C را دنبال می کنند. و کاربرانی که با سری آموزش های زبان C همراهمون هستند. در این جلسه قصدداریم تبدیل نوع در زبان C و انواعش ،Integer Promotion و تبدیلات ریاضی رایج در C رو بیان خواهیم کرد .

      تبدیل نوع در زبان C

      تبدیل نوع (type casting) راهی برای تغییر نوع داده یک متغیر به نوع داده دیگر است.

      به عنوان نمونه، شما می توانید یک مقداری که از نوع long است را به نوع int و بالعکس تبدیل کنید. شما می توانید مقادیر را از یک نوع به نوع دیگری به طور صریح با استفاده از عملگر تبدیل نوع تبدیل کنید.

      همانند مثال زیر:

      مثال : 

      مثال زیر را در نظر بگیرید که در آن عملگر تبدیل نوع ، نتیجه تقسیم دو متغیر که از نوع int هستند، را به نوع double تبدیل می کند:

      مثال : 

      زمانی که کد بالا توسط C کامپایل و اجرا شود، نتیجه زیر را تولید خواهد کرد:

      مثال : 

      در اینجا باید اشاره کرد که عملگر cast بر تقسیم اولویت دارد . بنابراین درابتدا تبدیل نوع و سپس عمل تقسیم را داریم. بعبارتی این عملگر ابتدا نوع داده متغیر sum را از int به double تغییر می دهد .
      سپس بر روی count تقسیم می شود.
      تبدیل نوع می تواند به صورت ضمنی باشد که توسط کامپایلر به صورت خودکار انجام می شود ،
      یا می توان آن را به طور صریح از طریق استفاده از عملگر منتخب مشخص کرد.
      این تمرین خوب برنامه نویسی در نظر گرفته شده برای استفاده از اپراتور عملگر cast یا عملگر تبدیل نوع ،زمانی که تبدیل نوع لازم است.

      انواع تبدیل نوع در زبان C

      تبدیل نوع داده در زبان C به دو صورت ضمنی و صریح انجام شود.

      تبدیل نوع داده به صورت ضمنی (implicit) و تبدیل نوع داده به صورت صریح (explicitly)

      در نوع اول عمل تبدیل نوع به صورت خودکار با کامپایلر انجام می دهد. برای نمونه نیازی نیست برای قرار دادن مقدار int در long از عملگر تبدیل نوع استفاده کنیم.

      در نوع دوم کامپایلر این کار را به صورت خودکار انجام نمی دهد به دلیل این که در تبدیل صریع ممکن است بخشی از مقداری که می خواهیم تبدیل کنیم از بین برود، به همین دلیل ما باید خودمان با استفاده از عملگر cast آن را انجام دهیم. برای نمونه زمانی که می خواهید یک مقدار float را در int ذخیره کنید، بخش اعشاری float از بین می رود.

      Integer Promotion

      Integer Promotion، فرایندی است که برخی از انواع داده مانند char، short که تعداد بایت کمتری از int می گیرند، هنگامی که بر روی آن ها عملیات انجام می شود به صورت خود کار به نوع داده int و یا unsigned int تبدیل می شود.. در زیر یک نمونه ای از تبدیل نوع Char به int را خواهیم دید.

      مثال : 

      زمانی که کد بالا توسط C کامپایل و اجرا شود، نتیجه زیر را تولید خواهد کرد:

      مثال : 

       

      نتیجه جمع دو متغیر ۱۱۶ شده است. بخاطر این که کامپایلر قبل از انجام عمل جمع ،Integer Promotion و تبدیل ‘c’ به ASCII را انجام می دهد.

      متغیر c را که از نوع char می باشد به نوع int تبدیل می کند.

      تبدیلات ریاضی رایج در C

      تبدیلات ریاضی رایج به طور ضمنی انجام می شود تا مقادیر خود را به یک نوع معمول تبدیل کنند.

      کامپایلر ابتدا performs integer promotion-ارتقاء integer را انجام می دهد. اگر عملوندها هنوز انواع مختلفی داشته باشند، آنها به نوعی که در سلسله مراتب زیر مشخص شده تبدیل می شوند.

      Usual Arithmetic Conversion

      تبدیلات ریاضی رایج در C برای عملگرهای محاسباتی و عملگرهای منطقی && و || انجام نمی شود.

      برای درک بهتر به مثال زیر توجه کنید:

      مثال : 

      زمانی که کد بالا توسط C کامپایل و اجرا شود، نتیجه زیر را تولید خواهد کرد:

      مثال : 

      در اینجا در اولین مرحله c به integer تبدیل می شود، اما چون بایدمقدار نهایی از نوع float باشد،
      تبدیل ریاضی معمول اعمال می شود و کامپایلر I و C را به “float ” تبدیل می کند و آنها را به نتیجه ی “float ” می رساند.

      کلام پایانی

      تبدیل نوع در زبان C و انواعش ،Integer Promotion و تبدیلات ریاضی رایج در C رو به اتمام میرسونیم ،

      در ادامه جلسات به مدیریت خطا در زبان C خواهیم پرداخت .

       

      QR:  جلسه ۲۴ : تبدیل نوع در زبان C
      به اشتراک بگذارید