Jak zapisać wielką liczbę za pomocą BigInteger?

Jak zapisać wielką liczbę za pomocą BigInteger?

Wątek przeniesiony 2015-05-24 13:14 z Java przez bogdans.

SU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 44
0

Witam,

Tak czytam, że dzięki klasie BigInteger można zapisać dowolnie długą liczbę. No i chciałem to przetestować i przemnożyć dwie liczby przez siebie i zobaczyć czy mi to zadziała. W instrukcji jaką posiadam ( książka java podstawy) jest napisane, że aby dokonać konwersji należy zappisać BigInteger a = BigInteger.valueOf(100). Napisałem:

Kopiuj
BigInteger x =  BigInteger.valueOf(7657788788865);

i pojawił się błąd typ int is aut of range.

W jaki sposób mam zapisać jedną długaśną liczbę i potem drugą.

Do mnożenia bym <ort>urzył</ort> tego multiply. Proszę o pomoc.

Tancerd
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 87
0

W Javie domyślnym typem liczbowym jest int (zakres –2,147,483,648 do 2,147,483,647), więc twoja liczba wykracza poza zakres inta - ponieważ używasz BigInteger.valueOf(int). Użyj BigInteger.valueOf(long) - dodaj literkę l do liczby - czyli 7657788788865l (zakres longa to –9,223,372,036,854,775,808 do 9 ,223,372,036,854,775,807).

PO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 153
kasiaKasia
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 259
0
Kopiuj
package forumBigInteger;

import java.math.BigInteger;

public class ForumBigInteger {

    public static void main(String[] args) {
        BigInteger a = new BigInteger("7657788788865");
        BigInteger b = new BigInteger("7657788788865");
        BigInteger multiply = b.multiply(a);
        System.out.println("multiply " + multiply.toString());
    }

}
SU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 44
0

Dziękuję. To z literką L mi pomogło. O konstruktorach jeszcze nic nie wiem, ale na pewno się ta odpowiedź przyda.

SU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 44
0

Do czego służy ten zapis "package forumBigInteger"

Przekopiowałem wszystko bez tego zapisu i też działa, dlatego pytam po co on jest i czy jest potrzebny?

kasiaKasia
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 259
0

ojejku . Tak używam NetBeans z przyzwyczajenia. Jakoś tak mało uruchamiam przykładów z konsoli java (w sumie to chyba ostanio na studiach :( ). Takie już przyzwyczajenie, ale przyznaję się szczerze ze juz Scale trenuje w konsoli i w IDE . Nie umiem jeszcze wszystkiego.
Tak wywołanie obiektów klasy z IDE jest różne niż w konsoli.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.