שפת ג 'אווה משמש בעיקר לכתיבהגדול יישומי אינטרנט ארגוניים. עם זאת, הוא חל גם על תחומים אחרים, שם לעתים קרובות יש צורך לעבוד עם מספרים גדולים מאוד. למרות ג 'אווה יש סוגים פרימיטיביים, ישנם מצבים שבהם הם לא מספיק.
זה ידוע כי כל פרימיטיבים יש אחדתכונה לא נעימה היא הצפה של סוג שבו התפוקה מעבר לערכים מותר מוביל חישובים לא נכונים. לשם כך, יש מעמד מיוחד בשם BigInteger. ג 'אווה לא יהיה ג' אווה אם זה לא היה בכיתה נפרדת עם פונקציונליות במקרה זה. בואו נחשוב על זה ביתר פירוט.
כפי שכבר ידעת, את הכיתה BigIntegerפגז עבור ערכים שלמים. כדי לתמצת מספר באובייקט מסוג זה, ניתן להשתמש באחד מעומס יתר של הבנאים שלו, או בשיטת הערך הסטטיOOf. הבנאי יכול לקחת מחרוזת או מערך של בתים כארגומנט. כדי להמיר סוגים פשוטים המייצגים מספרים שלמים, השתמש בשיטה valueOf סטטית ב- BigInteger Java.
בגלל ג 'אווה יכול לעומסהמפעילים נעדרים, על מנת לבצע פעולות מתמטיות על הערכים הממוקמים בכיתה זו, השיטה המתאימה מסופקת. הם יידונו בהמשך.
בכיתה זו יש בארסנל שלה רביםשיטות המאפשרים לך לתפעל ערכים מספריים ולבצע מגוון של פעולות מתמטיות עליהם. להלן רשימה של שיטות אלה.
ננתח את השיטות המבצעות פעולות אריתמטיות:
- להוסיף (ערך) - מוסיף את הערכים של האובייקט הנוכחי, עם הארגומנט עבר כמו;
- מחסור (מערער) - מחסר מעריך מן הערך הנוכחי;
- להכפיל (ערך) - מבצע כפל;
- מחלק (מחלק) - מחלק את הערך הנוכחי לתוך מחלק;
- pow (int arg) - מעלה את הערך של האובייקט המופעל לכוח בסדר גודל של ארגומנט;
- ABS () - מחזירה את הערך המוחלט של האובייקט שנקרא;
- שלילת () - מחזירה אובייקט BigInteger שערכו יש סימן הפוך.
הבה נבחן דוגמה פשוטה לביצוע פעולה אריתמטית על שני ערכים הממוקמים באובייקט:
- BigInteger val1, val2, הוספת, מחלק, מול Sign;
- val1 = BigInteger חדש ("5");
- val2 = BigInteger.valueOf (10);
- הוספת = val1.add (val2);
- חלוקת = val2.divide (val1);
- מולSign = val1.negate ();
שים לב ליצירת אובייקטים. המשתנה val1 אותחל באמצעות הבנאי שקיבל את המחרוזת, ומאחסן את הערך 5. val2 הוא 10 כתוצאה משיטת הערך הסטטיOOf. הערך של המשתנה המוסף הוא תוצאה של הוספת שני המשתנים הראשונים והוא 15. המשתנה המפריד בהתאם מחסן את התוצאה של החיסור. ההשוואה שווה לערך val1 עם סימן ההפך, כלומר -5.
כפי שאתה יכול לראות, את BigInteger Java בכיתה מספקתכלים שונים עבור פעולות על מספר גדול מאוד. במקרה זה, גלישות סוג מסולקות, שכן האבטחה ב- Java יש אחד העדיפויות הגבוהה ביותר, באופן טבעי מבלי להתפשר על הפונקציונליות.
</ p>