Jump to content
Fórum Script Brasil
  • 0

[ajuda] Biblioteca Para Manipulacao De Int Grandes


Guest Ninty_CEO

Question

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 to comment
Share on other sites

1 answer to this question

Recommended Posts

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...