Conversione da Integer, in BigInteger


129

Mi chiedevo se ci fosse un modo per convertire una variabile di tipo Integer, in BigInteger. Ho provato a scrivere a macchina la variabile Integer, ma viene visualizzato un errore che dice tipo inconvertibile.


12
hai fatto alcune domande su BigInteger che potrebbero essere risolte abbastanza facilmente leggendo i Javadocs. Segui il link nella mia risposta e controlla tutti i metodi e i costruttori di BigInteger.
— jjnguy,

Risposte:


239

Il metodo che desideri è BigInteger # valueOf (long val) .

Per esempio,

BigInteger bi = BigInteger.valueOf(myInteger.intValue());

Creare prima una stringa non è necessario né indesiderato.


2
@Mich, no. Se è un numero intero, Java lo espanderà automaticamente per te. (L'OP dice che ha un numero intero)
— jjnguy

Funzionerebbe altrettanto bene. In un numero intero intValue () non trabocca, quindi la chiamata a valueOf semplicemente allargherà l'int a un lungo. Non c'è alcuna differenza evidente tra l'utilizzo di longValue () e intValue () in questo esempio, ma se avesse iniziato con un Long, vorrebbe usare longValue ().
— jbindel,

2
Amar, sarebbe simile ad altri approcci basati su stringhe. La cosa chiave da evitare qui è qualsiasi generazione o analisi delle stringhe.
— jbindel,

1
Non è che usare una stringa ti darebbe la risposta sbagliata, ma è un lavoro extra per il computer. Ad esempio, puoi andare nella casa accanto camminando nella porta accanto, oppure potresti andare nella direzione opposta e andare quasi per tutto il mondo. Ci arriveresti ancora, e se hai un aereo a razzo veloce, potresti non notare il tempo impiegato, ma è dispendioso e impiega un po 'più di tempo.
— jbindel,

1
E che dire dei casi in cui myInteger è null sarà NPE.
— Wizzard,

-4

Puoi fare in questo modo:

    Integer i = 1;
    new BigInteger("" + i);

5
Puoi, ma perché dovresti? Una soluzione molto migliore è proposta nella risposta già accettata.
— Colin,

La creazione di stringhe per eseguire la matematica di numeri interi spreca più cicli della CPU di quanto ti dispiacerebbe contare.
— jbindel,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.