Ir para conteúdo

POWERED BY:

Arquivado

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

bamoZ

[Resolvido] Divisao de numeros inteiros

Recommended Posts

Ae galera!

 

Alguem sabe qual o algoritmo de divisao de numeros inteiros somente utilizando soma?

 

Essa seria a logica dos computadores certo?

 

Agradeço a atenção!

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguem sabe qual o algoritmo de divisao de numeros inteiros somente utilizando soma?

como é isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom c você quiser usar recursividade fica assim:

Função divisaoRec(inteiro num, inteiro den) retorna Inteiro
Inicio
   Se(num < den)
	  Então
		 Função_Retorna(0);
	  Senão
		 Função_Retorna(divisaoRec(num-den, den) + 1);
	  Fim_Se
Fim_Funcão

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

agora que eu não entendi mais nada.

para que serve essa função??

não faz nexo algum

 

alguém pode explicar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Simples.A divisão pode ser feita com subtração p/ calcular o resto (que vai ser usado na divisao seguinte se for maior do que o divisor.Se for menor,entao o quociente é zero) e o quociente é calculado somando-se 1 ao resultado anterior.

 

Já que você pediu um outro jeito... Esse é o que aparece no livro de arquitetura de computadores do Henessy e Patterson.

  int divisor,dividendo,resto;
 leia divisor;
 leia dividendo;

 resto <- dividendo;

 int quociente = 0;
 int digitos = sizeof(int)*4 +1; // Limite para o loop = metade de uma word (em bits) + 1
 int i=0;


  // O divisor eh carregado na metade superior. P/ isso se usa deslocamento à esquerda
 divisor = divisor << (sizeof(int)*4);

 while(i<digitos) {
resto = resto - divisor;
if (resto>=0) {
   quociente = quociente << 1;
   quociente++;
} else {
  resto = resto + divisor;
  quociente = quociente << 1;
}
divisor = divisor >> 1;
i++;
 }

 printf("quociente: %d \t resto: %d\n",quociente,resto);

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.