TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Algoritmo ULA

Trabalho Universitário: Algoritmo ULA. Pesquise 862.000+ trabalhos acadêmicos

Por:   •  22/3/2015  •  3.110 Palavras (13 Páginas)  •  341 Visualizações

Página 1 de 13

#include <stdio.h>

#include <string.h>

#include <math.h>

int WrA (char numero[100]){

int a, algarismo, decimal = 0, tamanho = 0, pos = 0;

tamanho = strlen(numero);

for (a = tamanho - 1; a >=0; a--){

if (numero[a] == '1'){

algarismo = numero[a] - '0';

decimal += pow(2, pos);

}

pos++;

}

return decimal;

}

int WrB (char numero[100]){

int i, algarismo, decimal = 0, tamanho = 0, pos = 0;

tamanho = strlen(numero);

for (i = tamanho - 1; i >=0; i--){

if (numero[i] == '1'){

algarismo = numero[i] - '0';

decimal += pow(2, pos);

}

pos++;

}

return decimal;

}

int main (void){

int loop = 1, mantA, mantB, i, overflow, compare;

int a=0, b=0, o=0, opcao, algA, algB;

char binA[9] = "00000000", binB[9] = "00000000", flag[100] = "0", operacao[4] = "000";

while (loop == 1){

system("cls");

printf("Menu principal da ULA\n\n");

printf("1. Definir registrador A\n\n");

printf("2. Definir registrador B\n\n");

printf("3. Ler registrador A (Acc)\n\n");

printf("4. Ler registrador B\n\n");

printf("5. Ler registrador de flags\n\n");

printf("6. Definir operacao\n\n");

printf("7. Executar ULA\n\n");

printf("8. Sair\n\n");

printf("Escolha a opcao => ");

scanf("%d", &opcao);

//Correção Flag em A

if (a > 255){

a = 255;

for (i=0; i<100 ;i++){

if(binA[i]=='\0'){

mantA = i - 1;

break;

}

}

if(mantA > 8){

overflow = mantA - 8;

for(i=0; i<= overflow; i++){

flag[i] = binA[i];

binA[i] = binA[i+1];

}

flag[overflow] = '\0';

binA[8] = '\0';

}

}else{

for (i=0; i<100 ;i++){

if(binA[i]=='\0'){

mantA = i;

break;

}

}

}

//Fim correção em Flag de A

//Correção de casas em A

if(mantA < 8){

for(i = 7; i >= 8 - mantA; i--){

binA[i] = binA[i - (8 - mantA)];

}

for(i = 0; i < 8-mantA; i++){

binA[i] = '0';

}

}

//Fim correção de casas em A

if (b > 255){

b = 255;

for (i=0; i<100 ;i++){

if(binB[i]=='\0'){

mantB = i - 1;

break;

}

}

if(mantB > 8){

...

Baixar como (para membros premium)  txt (7 Kb)  
Continuar por mais 12 páginas »
Disponível apenas no TrabalhosGratuitos.com