svmone
پنج شنبه 03 دی 1394, 11:41 صبح
سلام
وقتی که میخوایم یک نوع int رو به byte تبدیل کنیم از تبدیل صریح استفاده میکنیم (casting) اگر مقدار متغیری که از نوع int تعریف کردیم بزرگتر مساوی -128 تا کوچکتر مساوی 127 باشه همین مقدار تعریف شده به متغیر نوع byte انتساب داده میشه، اما اگر متغیر از نوع int مقدارش خارج از این محدوده باشه مقداری که به byte اختصاص داده میشه متفاوت از مقداری هستش که در نوع int هستش میخواستم بدونم با چه فرمولی این مقدار بدست میاد.
مثال:
// تعریف یک متغیر از نوع صحیح و مقدار دهی آن
int i = 3000;
// تعریف یک متغیر از نوع بایت و تبدیل صریح
// متغیر(i) به نوع بایت
byte b = (byte)i;
System.out.println(b); // output : -72
از چه فرمولی استفاده شده که 3000 تبدیل به -72 شده؟
با تشکر
وقتی که میخوایم یک نوع int رو به byte تبدیل کنیم از تبدیل صریح استفاده میکنیم (casting) اگر مقدار متغیری که از نوع int تعریف کردیم بزرگتر مساوی -128 تا کوچکتر مساوی 127 باشه همین مقدار تعریف شده به متغیر نوع byte انتساب داده میشه، اما اگر متغیر از نوع int مقدارش خارج از این محدوده باشه مقداری که به byte اختصاص داده میشه متفاوت از مقداری هستش که در نوع int هستش میخواستم بدونم با چه فرمولی این مقدار بدست میاد.
مثال:
// تعریف یک متغیر از نوع صحیح و مقدار دهی آن
int i = 3000;
// تعریف یک متغیر از نوع بایت و تبدیل صریح
// متغیر(i) به نوع بایت
byte b = (byte)i;
System.out.println(b); // output : -72
از چه فرمولی استفاده شده که 3000 تبدیل به -72 شده؟
با تشکر