Ir para conteúdo
Fórum Script Brasil
  • 0

[ajuda] Biblioteca Para Manipulacao De Int Grandes


Guest Ninty_CEO

Pergunta

Guest Ninty_CEO

Olá, pessoal. Preciso de ajuda num exercício.

Como construir uma biblioteca para manipulação de inteiros grandes de 128 bits? A biblioteca deverá prover as operações aritméticas básicas (somar, subtrair, multiplicar, dividir) e a operação de deslocamento de bits (bit shifting).

A biblioteca deve ser implementada usando a seguinte definição para o tipo do inteiro grande:

#define NUM_INTS 4

typedef unsigned int BigInt[NUM_INTS];

Ou seja, uma variável do tipo BigInt é representada por este array que deve ser interpretado como um único inteiro de 128 bits, em complemento a dois, seguindo a ordem little-endian. Desta forma, o inteiro 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE (igual a -2) é representado pelo array:

{0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF }

Para a implementação das operações, devem ser usadas as seguintes prototipações:

/* Operações básicas */

/* res = a + b */

void bi_sum (BigInt res, BigInt a, BigInt cool.gif;

/* res = a - b */

void bi_sub (BigInt res, BigInt a, BigInt cool.gif;

/* res = a - b */

void bi_mul (BigInt res, BigInt a, BigInt cool.gif;

/* res = a - b */

void bi_div (BigInt res, BigInt a, BigInt cool.gif;

/* Operações para deslocamento de bits */

/* desloca a de n bits para a direita e grava resultado em res */

void bi_shr (BigInt res, BigInt a, int n);

/* desloca a de n bits para a esquerda e grava resultado em res */

void bi_shl (BigInt res, BigInt a, int n);

Como fazer? Tenho uma parte do programa já pronta, mas estou parado na parte de multiplicacão e divisão de bits. Se alguém quiser conferir, posso postar meu código para análise. Ainda assim, gostaria de um solucão completa, para fins comparativos.

Sinceros abracos,

Ninty_CEO.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...