Ir ao conteúdo

Declarar Variável de 32 números


henrivalle

Posts recomendados

Postado

Boa tarde pessoal,

Estou desenvolvendo um programa em C++, e nele necessito de uma variável do tipo inteira que armazene um número de 32 dígitos, como por exemplo 12345000000000000000000000000000. Contudo as variáveis diponíveis em C do tipo int, long, double armazenam o máximo de 10 dígitos.

Quando feito assim, o programa nãpo perde o verdadeiro valor de entrada, mais não imprime na tela os 32 dígitos.

Sei que no java pode-se fazer isto com o bigInt, se não me engano, mais no C não sei...

Alguém sabe se existe alguma variável no C, que seja inteira (pois preciso de fazer a comparação numérica), para armazenamento e impressão correta do número?

Desde já agradeço a atenção da galera!

Grande Abraço!

Postado

a minha ideia seria usar um pequeno vetor mais ou menos assim:

unsigned long NumberVeryLarge[4];

que você poderia armazenar o número em partes, mas como você quer comparar e fazer algumas operações, vai precisar de métodos especias pra isso...

pra que você quer um número de 32 dígitos? :lol:

Postado

Os 32 dígitos formam um identificador...

De acordo com uma entrada, associada a um identificador, é gerado um código de 32 dígitos, que será responsável pela comparação.

Caso seja feita com a variável long int propriamente dita, esta não perde o seu valor de significancia, e é acertiva na comparação, contudo, quando impressa para que o usuário tome ciência a variável se mostra em diferimento da original, o que gera confusão...

Ta complicado achar uma saída... kkk

Pensei em usar string, pois ela mesma tem um método de comparação, o complicado são as operações de multiplicação... adição... e etc que esta variável tem de sofrer...

Sei que que eu faço não... kkkk

Postado

Pesquise por BigNum em C.

É como o colega disse ai em cima, se quer um número de 32 digitos, seria um int bignum[32]; , ocupando 128bytes de memória para armazenar este valor. Há outras maneiras que ocupam menos memória, como por exemplo usando char bignum[32], diminuindo para apenas 32 bytes. A escolha do método depende da relevância de utilização de memória ou de tempo de processamento do programa: É um sistema crítico em algum destes dois sentidos?

Com algum conhecimento de algoritmos e uma matemática simples você mesmo consegue fazer um programa para somar e subtrair bignums, ou multiplicar e, quem sabe até dividir, sendo este último um pouco mais complicado.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...