Potencia elevada a 1000

5 respostas
G

Pessoal eu tava fazendo um trabalho de potencia em java. Mas como tudo não é doce. apareceu um problema de representação de numeros em potencias elevadas… Eu estou trabalhando na base decimal e ai que ta o problema! O resultado é muito grande… Então pensei em usar a base 16. Será que é possivel obter um resultado de 2 ^1000 na base 16?
grato.

5 Respostas

cassio

gollun:
Pessoal eu tava fazendo um trabalho de potencia em java. Mas como tudo não é doce. apareceu um problema de representação de numeros em potencias elevadas… Eu estou trabalhando na base decimal e ai que ta o problema! O resultado é muito grande… Então pensei em usar a base 16. Será que é possivel obter um resultado de 2 ^1000 na base 16?
grato.

Use a classe BigInteger

diego2005

Você pode fazer assim:

Double d = Math.pow(2, 1000); String s = Long.toHexString(d.longValue());

Mais acho que vai perder a precisão, melhor fazer o que o Cassio falou.

T+

C

Seguinte não sei se vai resolver este seu problema, mas você poderia fazer o seguinte:

este método da classe Integer convert um inteiro para um hexadecimal:

Integer.toHexString(25) -> vai retornar o valor em, hexadecimal, ai você pode elevar a esta potência… FLWs

C

cassio:
gollun:
Pessoal eu tava fazendo um trabalho de potencia em java. Mas como tudo não é doce. apareceu um problema de representação de numeros em potencias elevadas… Eu estou trabalhando na base decimal e ai que ta o problema! O resultado é muito grande… Então pensei em usar a base 16. Será que é possivel obter um resultado de 2 ^1000 na base 16?
grato.

Use a classe BigInteger

Essa classe BigInteger ela aguenta quantos bits ou bytes para representar um inteiro?

cassio

corvao:
cassio:
gollun:
Pessoal eu tava fazendo um trabalho de potencia em java. Mas como tudo não é doce. apareceu um problema de representação de numeros em potencias elevadas… Eu estou trabalhando na base decimal e ai que ta o problema! O resultado é muito grande… Então pensei em usar a base 16. Será que é possivel obter um resultado de 2 ^1000 na base 16?
grato.

Use a classe BigInteger

Essa classe BigInteger ela aguenta quantos bits ou bytes para representar um inteiro?

Quanto você quiser, ou melhor, quanta memória você puder alocar :slight_smile:
O desempenho dela não é tão bom quanto trabalhar com inteiros tradicionais, mas se quiser guardar valores inteiros de qualquer magnitude, é uma ótima solução.
Ele guarda qualquer quantidade de digitos, pois internamente trabalha de maneira semelhante a uma lista encadeada.

Criado 14 de agosto de 2007
Ultima resposta 14 de ago. de 2007
Respostas 5
Participantes 4