X
تبلیغات
نماشا
رایتل

تبدیل ضمنی   Implicit Conversions

 

حتما در طول تجربه برنامه نویسی خود با مبحث تبدیل داده ها برخورد داشته اید ، برای مثال شاید بخواهید داده ای 8 بیتی را به داده ای 16 بیتی تبدیل کنید ، بدون آنکه اصل داده دچار تغییر شود .

تبدیل داده ها در سی شارپ بر دو نوع است *-ضمنی  implicit   *-صریح   explicit

تبدیل ضمنی وقتی می خواهید داده ای را از نوع کوچکتر به نوع بزرگتر تبدیل کنید ، باید از تبدیل ضمنی استفاده کنید ، زبان سی شارپ این کار را بصورت اتوماتیک برای شما انجام می دهد . اما ....

 

1-هنگام تبدیل  از نوع کوچکتر ( نوع با تعداد بیت کمتر) به نوع بزرگتر (نوع با بیت بیشتر ) بیتهای بیشتر باید با صفر و یک پر شوند.

2-هنگام تبدیل از نوع کوچکتر بدون علامت به نوع بزرگتر بدون علامت ، بیتهای بیشتر با صفر پر می شوند.

شکل زیر بسیار گویا است .



در شکل بالا ما عدد 10 که از نوع byte  است را تبدیل به نوع بزرگتر از نوع ushort  کردیم .

 

نکته : اگر هنگام تبدیل نوع کوچکتر به نوع بزرگتر ، داده ما دارای علامت مثبت یا منفی بود ، آنگاه بیتهای بیشتر با بیت علامت پر می شوند ، علامت مثبت ، یک علامت پیش فرض است لذا بیتهای آن صفر است اما علامت منفی بیتهای آن عدد یک است .

مانند شکل زیر

در شکل بالا دقت کنید که چگونه عدد منفی 10 جایگزین و تبدیل شده است .

در مقاله بعد در مورد تبدیل صریح  (explicit) خواهم گفت .