در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

کار با اعداد بسیار بزرگ در جاوا

با سلام به همه دوستان وهمراهان Itpro. همان طور که در مطلب انواع داده ها در جاوا گفته شد انواع عددی دارای محدودیتی می باشد. شاید حالتی پیش بیاید که مجبور شویم با داده های بسیار بزرگ کار کنیم به طوری که انواع داده های موجود پاسخگوی نیازمان نباشند. اگر اندازه های داده ها به قدری باشد که مثلا نوع داده int نتواند داده ما را ذخیره کند و حتی نوع داده long نیز نتواند این کار را بکند باید فکر دیگری به حال ذخیره و کار با داده ها کرد. زبان جاوا برای حل این مشکل دو کلاس معرفی کرده است که بتوان انواع داده بزرگ را در آن ذخیره کرد. یکی برای داده های صحیح با نام BigInteger و دیگری برای ذخیره داده های اعشاری با نام BigDecimal . در کد زیر یک مثال از استفاده از این کلاس ها آورده شده است:

import java.math.BigInteger;
public class MyClass {
    public static void main(String[] args){
	 BigInteger integer=BigInteger.valueOf(500);
        for (int i=0;i<50;i++)
            integer=integer.multiply(BigInteger.valueOf(500));
        System.out.println(integer);

    }
}

خروجی کد بالا به شکل زیر خواهد بود:

444089209850062616169452667236328125000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

از کد دیده می شود که با این که عدد 500 به توان 50 یک عدد بسیار بزرگ است ولی می توان نتیجه را ذخیره کرد. اما از طرف دیگر این کلاس محدودیت هایی دارد. یکی از محدودیت های این کلاس این است که نمی توان با استفاده از علامت = شئ آن را مقداردهی کرد و باید مقداردهی آن با استفاده از متد valueOf انجام گردد و همچنین برای اعمال ریاضی اصلی +-/ نمی توان از علائم گفته شده استفاده کرد و باید از متدهای مربوطه مانند add, multiply استفاده کرد. نحوه پیاده سازی این کلاس ها به این شکل است که برای ذخیره اعداد بزرگ از یک آرایه استفاده می شود که در هر خانه یک عدد قرار می گیرد و سقف ذخیره سازی این کلاس ها بزرگتری مقدار نوع داده int یعنی بزرگترین عدد 2147483647رقمی خواهد بود که مقدار بزرگی است. نکته ای که باید به آن اشاره کرد این است که برخلاف زبان قدرتمند سی پلاس پلاس که می شود در آن عملگرهایی مانند+ - را overload کرد در جاوا این امکان وجود ندارد و مجبوریم که برای کلاس هایی مانند BigInteger از متدهای مربوطه استفاده کنیم. Itpro باشید*

نویسنده: مهدی عادلی فر

منبع: انجمن تخصصی فناوری اطلاعات ایران

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد.

#متدهای_مربوط_به_اعداد_در_جاوا #bigdecimal_در_جاوا #برنامه_نویسی_جاوا #آموزش_جاوا #اعداد_بزرگ_در_جاوا #انواع_داده_در_جاوا #biginteger_در_جاوا #زبان_برنامه_نویسی_جاوا #یادگیری_زبان_برنامه_نویسی_جاوا
0 نظر

هیچ نظری ارسال نشده است! اولین نظر برای این مطلب را شما ارسال کنید...

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....