GARANTIR DESCONTO

Fórum Como trabalhar com inteiros grandes? #254765

17/10/2004

0

Eu proeciso trabalhar com inteiros maiores que int64 e que não estejam na forma exponencial, algo como int128 ou int256; alguém tem alguma idéia?


Edilcimar

Edilcimar

Responder

Posts

17/10/2004

Ricardo.vano

Olá,

Você tentou usar LongInt ?


Responder

Gostei + 0

17/10/2004

Fórum Vini

Olá, Você tentou usar LongInt ?

O tipo LongInt é de 32bits, ele precisa de muito mais que isso :lol:

Você pode declarar seu próprio tipo Int128:
type
  Int128 = $00000000000000..$FFFFFFFFFFFFFF;

Depois crie suas variáveis normalmente:
var
 I: Int128;

Para o Int256 não sei como você pode fazer, pois o Delphi não aceita tipos com 8 bytes.. Também não sei como ficará o desempenho do tipo Int128, talvez fique muito lento.. :roll:
Eu sabia de um site que abordava inteiros de 128bits, vou ver se acho ele nos meus guardados e te falo :wink:

Espero ter ajudado,
Vinicius;


Responder

Gostei + 0

17/10/2004

Emerson Nascimento

veja se [url=http://www.latiumsoftware.com/br/pascal/0045.php]este artigo [/url] lhe ajuda em algo. veja o item 5.


Responder

Gostei + 0

17/10/2004

Afarias

Você pode declarar seu próprio tipo Int128:
type
  Int128 = $00000000000000..$FFFFFFFFFFFFFF;


1) $FFFFFFFFFFFFFF não representa de forma alguma um inteiro de 128bits, na verdade, é ainda menor q um inteiro do 64bits

2) é ´impossível´ representar ou manipular inteiros maiores de 64bits na arquitetura atual dos PCs (x86) -- isso não é uma limitação do Delphi, apenas dos processadores domésticos atuais

bom, se vc precisa realmente de inteiros maiores q 64bits terá de partir para outras soluções, exemplo::

definir um Int128 como um array de 4 possições contendo inteiros de 32 bits (4x32=128), mas ai vc terá de definir tb as operações como soma, multiplicação, etc...



T+


Responder

Gostei + 0

17/10/2004

Edilcimar

1)Não dá, tem que ser número maior que 10 elevado a 100 pois é para criptografia RSA, ou seja eu tenho que gerar os primos nesta ordem.
2)SE não dá para utilizar, como é que tem gente utilizando?


Responder

Gostei + 0

17/10/2004

Afarias

2)SE não dá para utilizar, como é que tem gente utilizando?


com soluções como a mostrada no Artigo sugerido pelo emerson.en



T+


Responder

Gostei + 0

17/10/2004

Edilcimar

E uma pergunta idiota, o meu computador leva 8 min para calcular os primos até 1 milhão, como as pessoas estão calculando-os até 10 elevado a 100? Isto leva mais de 1 mês!


Responder

Gostei + 0

17/10/2004

Gandalf.nho

Geralmente esse tipo de cálculo usa supercomputadores ou clusters...


Responder

Gostei + 0

17/10/2004

Edilcimar

Só que infelizmente nem todo mundo pode ter um Cray num ´cantinho´ da casa, então deve haver outro tipo de solução pois tem pessoas fazendo este tipo de cálculo com um micro


Responder

Gostei + 0

17/10/2004

Fórum Vini

1) $FFFFFFFFFFFFFF não representa de forma alguma um inteiro de 128bits, na verdade, é ainda menor q um inteiro do 64bits

:oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops: :oops:
Putz, falei bobagem nessa né? :roll:
Na verdade eu pensei em 2^7 mas acabei criando foi uma combinação de 2^( 7*8 ) bits..foi isso?
O inteiro de 128 bits seria então 2^128 combinações diferentes de bits? :shock:
Corrigindo então:
type
  Int56 = $00000000000000..$FFFFFFFFFFFFFF

:lol: :oops:

Desculpa pelo fora, só tentei ajudar :roll: :roll:


Responder

Gostei + 0

18/10/2004

Afarias

|então deve haver outro tipo de solução pois tem pessoas fazendo este
|tipo de cálculo com um micro

por curiosidade,

qual seu computador e como está calculando?
o que exatamente vc deseja?
que pessoas são essas?
e, ´elas´ fazem esses famigerados cálculos com 1 micro 32bits doméstico é? não é processamento distribuido?



T+


Responder

Gostei + 0

21/10/2004

Edilcimar

Eu quero calcular números primos na ordem de 10 elevado a 100 ou mais para efetuar algorítmo de criptografia RSA, e tenho um P4, quanto as pessoas que fazem estes cálculos são aquelas quer criam criptografia de 1024, 2048 bits


Responder

Gostei + 0

21/10/2004

Bruno Belchior

no pascal existe um tipo chamado extended (extendido) que é o maior tipo possível interpretado pelo computador, vc tem que habilitá-lo (no pascal) para funcionar, pois ele é processado diretamente no processador... não sei se ele existe no delphi mas vale a pena tentar vê-lo apesar que nunca vi falar sobre ele em delphi...


Responder

Gostei + 0

21/10/2004

Paulo_amorim

Olá

Há, sim, pessoas calculando números primos maiores que 10^100, mas normalmente isso eh feito em supercomputadores ou, como agora está mais comum, fazem uso de vários computadores domésticos, formando uma rede de processamento (como disse o afarias, processamento distribuido)

Fazer isso em um só PC, ainda mais um que você está usando, eh muito difícil que se faça em menos de 1 dia

Até+


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar