Skip to content

O algoritmo de booth é um algoritmo de multiplicação que permite multiplicar dois inteiros binários com sinal em complemento de 2.

License

Notifications You must be signed in to change notification settings

Alfredosavi/Booths-Algorithm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Booths-Algorithm

O algoritmo de booth é um algoritmo de multiplicação que permite multiplicar dois inteiros binários com sinal em complemento de 2.

🔥 Como usar?

OBS: O algoritmo está disponível para o uso no Git pages.

  1. Insira nos campos de inputs os valores e em seguida informe se são valores decimais ou binários, em seguida clique no botão Send;
  2. Clique no botão Steps para ver passo a passo o flowchart do Algoritmo e a tabela;
  3. Use o botão Reset para limpar o flowchart e a tabela.

⚠️ Algoritmo

  1. Converter os valores M (multiplicando) e Q (multiplicador) para binário;
    1. Se o número informado for menor que 0, usa-se o método complemento de dois;
  2. Criar um contador com a quantidade de bits do número Q;
  3. Setar os valores de A e Q-1 para 0;
  4. Realizar o comparativo entre o último bit de Q com o de Q-1;
    1. Se Q=1 e Q-1=0, realiza a subtração de A por M e assume este novo valor para A (A <- A -M);
    2. Se Q=0 e Q-1=1, realiza a soma de A por M e assume este novo valor para A (A <- A + M);
    3. Se Q=Q-1, não é necessário nenhum passo algébrico, é feito somente o deslocamento;
  5. Após cada comparativo, realizasse o deslocamento aritmético para a direita e em seguida decrementa o contador.

🔨 Exemplo

Multiplicação de (5)10 X (7)10:

  1. Converter para binário:
    1. (5)10 = (0101)2;
    2. (7)10 = (0111)2;
  2. Criar um contador com a quantidade de bits do multiplicando:
    1. Count = 4;
  3. Setar os valores de A e de Q-1 para 0:
    1. A = 0000;
    2. Q-1 = 0;
  4. Comparar o último bit de Q com Q-1:
    1. Se Q=1 e Q-1=0 --> A <- A - M;
    2. Se Q=0 e Q-1=1 --> A <- A + M;
    3. Se Q=Q-1 --> Nada (nenhum passo algébrico);
  5. Realizar o deslocamento aritmético para a direita e em seguida decrementar o contador.

Repetir o passo 4° e 5° até o contador ser igual a zero.

Tabela com o passo a passo do exemplo a cima:

Operação A Q Q-1 Razão
0000 0111 0 Valores Iniciais
A <- A - M 1011 0111 0 1/4 Ciclo
Deslocamento 1101 1011 1
Nada 1110 1011 1 2/4 Ciclo
Deslocamento 1110 1101 1
Nada 1111 1101 1 3/4 Ciclo
Deslocamento 1111 0110 1
A <- A + M 0100 0110 1 4/4 Ciclo
Deslocamento 0010 0011 0

Resultado: A = 0010 Q = 0011 => (00100011)2 = (35)10

⚡️ Como contribuir

  • Faça um fork desse repositório;
  • Cria uma branch com a sua feature: git checkout -b minha-feature;
  • Faça commit das suas alterações: git commit -m 'feat: Minha nova feature';
  • Faça push para a sua branch: git push origin minha-feature.

Depois que o merge da sua pull request for feito, você pode deletar a sua branch.

📝 Licença

Esse projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.

About

O algoritmo de booth é um algoritmo de multiplicação que permite multiplicar dois inteiros binários com sinal em complemento de 2.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages