-
مدیر بازنشسته
آموزش جاوا - integers ( اعداد صحيح )
آموزش جاوا - integers ( اعداد صحيح )
جاوا چهار نوع عدد صحيح تعريف مي كند : byte، short،، int،، long، . كليه اين اعداد داراي علامات مثبت و منفي هستند . جاوا از اعداد صحيح غير علامت دار و فقط مثبت پشتيباني نمي كند . بسياري از زبانهاي برنامه نويسي شامل Cو C++و هم از اعداد صحيح علامت دار و هم از اعداد صحيح فاقد علامت پشتيباني مي كنند . اما طراحان جاوا احساس مي كردند كه اعداد صحيح فاقد علامت غير ضروري است . بويژه آنها احساس كردند كه مفهوم فاقد علامت (unsigned) بيشتر براي مشخص كردن رفتار بيت بالاتر از حد مجاز (high-order bit) استفاده مي شود كه علامت يك int را هنگاميكه بعنوان يك رقم عنوان مي شود ، مشخص مي كند . بعدا" خواهيد ديد كه
جاوا مفهوم بيت بالاتر از حد مجاز (high-order bit) را بگونه اي متفاوت مديريت مي كند ، يعني با اضافه كردن يك عملگر ويژه حركت به راست فاقد علامت unsigned) (right shift . بدين ترتيب نياز به يك نوع عدد صحيح فاقد علامت منتفي شده است .
پهناي (widit) يك نوع عدد صحيح را نبايد با ميزان حافظه اي كه مصرف مي كند اشتباه گرفت ، بلكه نشانه رفتاري است كه براي متغيرها و عبارات آن نوع تعريف مي شود . محيط حين اجراي جاوا از هر اندازه اي كه نياز داشته باشد ، استفاده مي كند ، البته تا آن اندازه اي كه انواع براساس اعلام قبلي شما رفتار كنند . در حقيقت ، حداقل يك پياده سازي byte وجود دارد كه ، short را بعنوان مقادير 32 بيتي ذخيره مي كند تا عملكرد را توسعه دهد. زيرا آنچه درحال حاضر مورد استفاده قرار مي گيرد ، اندازه كلمه (word size) اكثر كامپيوترهاست .
پهنا و دامنه اين انواع اعداد صحيح همانطوريكه در جدول زير مشاهده مي كنيد
طيف وسيعي دارند :
دامنه پهنا نام
long 64- 9/ 223/ 372/ 036/ 845/ 775/ 808 to 9/ 223/ 372
/036/ 854/ 775/ 807
int 32- 2/ 147/ 483/ 648 to 2/ 147/ 483/ 647
short 16- 32/ 768 to 32/ 767
byte 8- 128 to 127
اكنون نگاه دقيقتري به هر يك از انواع عدد صحيح خواهيم داشت .
byte
كوچكترين نوع عدد صحيح byte است . اين يك نوع علامت دار 8 بيتي است كه دامنه آن از 128- تا 127 مي باشد . متغيرهاي نوع byte بويژه هنگاميكه با يك جريان داده از يك شبكه يا يك فايل كار ميكنيد ، سودمند خواهند بود . همچنين هنگاميكه با داده دودويي ( باينري ) خام مشغول كار هستيد كه ممكن است بطور مستقيم با ساير انواع توكار جاوا سازگاري نداشته باشند ، بسيار سودمند هستند .
متغيرهاي byte را با استفاده از واژه كليدي byte اعلام مي كنيم . بعنوان
مثال ، در زير دو متغير byte با اسامي bو cو را اعلام كرده ايم : + byte b/ c;
short
يك نوع 16 بيتي علامت داراست . دامنه آن از 768 32/- تا 767 32/ است . short در اصل كم استفاده ترين نوع در جاوا مي باشد ، چون طوري تعريف شده كه بايت بالاي آن اول مي آيد ( آن را big-endian format ميگويند ). اين نوع براي كامپيوترهاي 16بيتي كه بسرعت از رده خارج شده اند ، كاربري دارد .
در زير مثالهايي از چگونگي اعلان متغيرهاي short را مشاهده مي كنيد : + short s;
+ short t;
نكته : Endiannes توصيف كننده چگونگي ذخيره شدن انواع داده چند بايتي short intو longو در حافظه است . اگر 2 بايت براي معرفي يك نوع short استفاده شود ، آن بايتي كه ابتدا قرار مي گيرد ( مهمترين يا كم اهميت ترين ? ) مي گويد كه يك ماشين big-endian است ، بدان معني كه مهمترين بايت اول آمده و بعد از آن بايت كم اهميت تر قرار دارد . ماشينهايي نظير SPARC و power pcاز نوع big-endian و ماشينهاي سري lntelx86نوع little-endianع هستند .
intرايجترين نوع عدد صحيح int است . اين يك نوع 32 بيتي علامت دار است كه دامنه آن از 2/147/483/648- تا 2/147/483/647 گسترده است . علاوه بر كاربردهاي ديگر متغيرهاي از نوع int براي كنترل حلقه ها و نمايه سازي آرايه ها مورد استفاده قرار مي گيرند . هر بار كه يك عبارت عدد صحيح شامل byte، short،و intو و ارقام لفظي
(literal) داشته باشيد، كل عبارت قبل از انجام محاسبات به int ارتقائ مي يابد.
نوع int روان ترين و كاراترين نوع است و اكثر اوقات هنگاميكه ميخواهيد رقمي را براي شمارش يا نمايه سازي آرايه ها يا انجام محاسبات عدد صحيح بوجود آوريد بايد از آن استفاده نماييد . شايد بنظر آيد كه استفاده از انواع shortو byteو سبب صرفه جويي در فضا شود ، اما هيچ تضميني وجود ندارد كه جاوا اين انواع را بطرق داخلي به int ارتقائ ندهد . همواره بياد داشته باشيد كه نوع ، مشخص كننده رفتار است نه اندازه . ( تنها استثنائ در اين مورد، آرايه است كه در آنجا byte بصورت تضميني براي هر عضو آرايه فقط يك بايت ، short دو بايت و int از چهار
بايت استفاده مي كند . )
long يك نوع 64 بيتي علامت دار است و براي مواردي مفيد است كه يك نوع int طول كافي براي دربرگرفتن مقدار مورد نظر نداشته باشد. دامنه long كاملا" وسيع است .
اين نوع ، براي كار با اعداد خيلي بزرگ مناسب است . بعنوان مثال ، در زير برنامه اي را مشاهده مي كنيد كه مسافت طي شده توسط نور در تعداد مشخص روز را بر حسب مايل محاسبه مي كند .
+ // Compute distance light travels using long variables.
+ class Light {
+ public static void main(String args[] ){
+ int lightspeed;
+ long days;
+ long seconds;
+ long distance;
+
+ // approximate speed of light in miles per second
+ lightspeed = 86000;
+
+ days = 1000; // specify number of days here
+
+ seconds = days * 24 * 60 * 60; // convert to seconds
+
+ distance = lightspeed * seconds; // compute distance
+
+ System.out.print("In " + days);
+ System.out.print(" days light will travel about ");
+ System.out.println(distance + " miles .");
+ }
+ }
خروجي اين برنامه بقرار زير خواهد بود : ln 1000 days light will travel about 4730400000000 miles
-
مجوز های ارسال و ویرایش
- شما نمیتوانید موضوع جدیدی ارسال کنید
- شما امکان ارسال پاسخ را ندارید
- شما نمیتوانید فایل پیوست کنید.
- شما نمیتوانید پست های خود را ویرایش کنید
-
مشاهده قوانین
انجمن