آموزش دونه:مرجع آموزش

تبدیل انواع داده(ضمنی و صریح) در آموزش برنامه نویسی اندروید Android

تبدیل انواع داده

در زبان اندروید انواع مختلف داده ها میتوانند به یکدیگر تبدیل شوند.تبدیل انواع از دو جهت قابل بررسی است.  android  type conversion

  • تبدیل انواع در ضمنی android  type conversion
  • تبدیل انواع در صریح android  type conversion

تبدیل انواع در ضمنی android  type conversion

در مورد تبدیل انواع در ضمنی، این قانون حاکم است که انواع کوچکتر به انواع بزرگتر تبدیل میشوند:

اگر یکی از عملوند ها long double باشد، عملوند دیگر به long double تبدیل میشود.

اگر یکی از عملوند ها double باشد، عملوند دیگر به double تبدیل میشود.

اگر یکی از عملوند ها float باشد، عملوند دیگر به float تبدیل میشود.

اگر یکی از عملوند ها unsigned long باشد، عملوند دیگر به unsigned long تبدیل میشود.

اگر یکی از عملوند ها long باشد، عملوند دیگر به long تبدیل میشود.

اگر یکی از عملوند ها unsigned int باشد، عملوند دیگر به unsigned int تبدیل میشود.

اگر یکی از عملوند ها int باشد، عملوند دیگر به int تبدیل میشود.

اگر یکی از عملوند ها short باشد، عملوند دیگر به short تبدیل میشود.

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

به طور مثال:

در این عبارت چهار نوع مختلف با هم ترکیب شده اند و نوع نتیجه بر اساس تغییر انواعی که صورت گرفته است double است.بنابراین متغیر result باید از نوع double  باشد.

تبدیل انواع در صریح android  type conversion

تبدیل انواع در صریح وقتی رخ میدهد که دو نوع مختلف به یکدیگر نسبت داده شوند.برای اینکه تبدیل نوع در صریح صورت گیرد،نوع مورد انتظار را ذکر میکنیم.

به طور مثال:

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

نوع منبعنوع مقصداطلاعاتی که ممکن است از بین برود
charSigned charاگر مقدار بیش از ۱۲۷ باشد،مقصد منفی خواهد شد.
Short intchar۸ بیت باارزش
intchar۸ بیت باارزش
intchar۲۴ بیت باارزش
 Long intchar۲۴ بیت باارزش
intShort intاطلاعات از بین نمی رود
intShort int۱۶ بیت باارزش
Long intint۱۶ بیت باارزش
Long intintاطلاعات از بین نمی رود
floatintبخش کسری و یا بیشتر
doublefloatنتیجه گرد می شود
Long doubledoubleنتیجه گرد می شود

بدیهی است که در تبدیل نوع صریح ممکن است بخشی از اطلاعات از بین برود كه بايد در نتيجه حاصل از
تبدیل صریح دقت كافي به خرج داد.

مطالب مرتبط