ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

ALGORITMO DE BOOTH


Enviado por   •  20 de Mayo de 2013  •  3.045 Palabras (13 Páginas)  •  482 Visitas

Página 1 de 13

#include<iostream>

using namespace std;

//*******************FUNCION PARA NUMERO POSITIVO A BINARIO********//

void binariopos(int N,int A[100],int n);

//*****************************************************************//

//*******************FUNCION PARA NUMERO NEGATIVO A BINARIO********//

void binarioneg(int N,int A[100],int n);

//*****************************************************************//

//*******************SUMA DOS NUMEROS EN BINARIO*******************//

void sumar(int A[100],int B[100],int bits);

//*****************************************************************//

//---------------------------------------------------------------//

//***************************PROGRAMA PRINCIPAL******************//

//---------------------------------------------------------------//

int main()

{

while(1)

{

system("cls");

system("color 4F");

///***Primer digito fondo y el segundo letra Color*********//

int mdo,mdr; //*****Numeros Ingresados****//

int MDO_10[100]; //***MDO EN BINARIO***//

int MDO_01[100]; //***MDO EN BINARIO***//

int MDR[100]; //***MDR EN BINARIO***//

int Aux[100]; //**AUXILIAR PARA NUMERO BINARIO**//

int aux1,aux2,aux; //**AUXILIARES PARA LOS BITS**//

int bits1=0,bits2=0,bits; //**BITS DE CADA NUMERO**//

int AC[100]; //*REGISTROS ACUMULADOR*//

int QN=0; //*BIT ADICIONAL*//

cout<<endl<<"\t\t\tALGORITMO DE BOOTH";

//********************************************************//

cout<<endl<<endl<<" ->> MULTIPLICANDO :";

cin>>mdo;

//****************************NUMERO DE BITS DEL MDO*************//

aux=mdo;

do

{

aux=aux/2;

bits1++;

}

while(aux!=0);

//***********************************************************//

cout<<endl<<" ->> MULTIPLICADOR :";

cin>>mdr;

//****************************NUMERO DE BITS DEL MDO***************//

aux=mdr;

do

{

aux=aux/2;

bits2++;

}

while(aux!=0);

//**************************************************//

//******************MAYOR NUMERO BITS*****************//

if(bits1>bits2)

bits=bits1;

else

bits=bits2;

bits=bits+1;

//*****************************************************//

//*******MUESTRA EL VALOR DEL MDO DEPENDIENDO DEL SIGNO***********//

cout<<endl<<endl<<endl<<" ->> MULTIPLICANDO :";

if(mdo<0)

{

binarioneg(mdo,MDO_01,bits);

//*** PASO A BINARIO EL MDO_01 ***//

for(int i=0;i<bits;i++)

cout<<MDO_01[i];

}

else

{

binariopos(mdo,MDO_10,bits);

//*** PASO A BINARIO EL MDO_10 ***//

for(int i=0;i<bits;i++)

cout<<MDO_10[i];

}

//**************************************************//

//***TRUCO :MACENA EL MDO EN BINARIO DEPENDIENDO DEL SIGNO***//

if(mdo<0)

{

binariopos(mdo,MDO_10,bits);

binarioneg(mdo,MDO_01,bits);

}

else

{

binariopos(mdo,MDO_01,bits);

binarioneg(mdo,MDO_10,bits);

}

//************************//

//***MUESTRA EL VALOR DEL MDR DEPENDIENDO DEL SIGNO***********//

cout<<endl<<endl<<" ->> MULTIPLICADOR :";

if(mdr<0)

binarioneg(mdr,MDR,bits);

else

binariopos(mdr,MDR,bits);

for(int i=0;i<bits;i++)

cout<<MDR[i];

//********************//

//**********LLENA EL REGISTRO ACUMULADOR DE 0**********//

for(int i=0;i<bits;i++)

AC[i]=0;

//********************************//

//**************MUESTRA TITULOS DE BOOTH*********//

int a;

a=bits/2;

cout<<endl<<endl<<endl;

cout<<" ";

for(int i=0;i<bits;i++)

{

cout<<" ";

if(i==a)

cout<<"AC";

}

cout<<" ";//espacio

for(int i=0;i<bits;i++)

{

cout<<" ";

if(i==a)

cout<<"QR";

}

cout<<" QN";//espacio

cout<<" SC";//espacio

cout<<endl;

cout<<" ";

for(int i=0;i<bits;i++)

cout<<"_";

cout<<" ";//espacio

for(int i=0;i<bits;i++)

cout<<"_";

cout<<" __";//espacio

cout<<" __";//espacio

//**********************************************//

//***********************************************//

//****************************DESARROLLO DE BOTH*****************//

//***************************************************//

for(int SC=bits;SC>=0;SC--)

{

//****************MUESTRA DE DESARROLLO DE BOOTH**************//

cout<<endl<<endl;

...

Descargar como (para miembros actualizados) txt (12 Kb)
Leer 12 páginas más »
Disponible sólo en Clubensayos.com