Operandos:
• Binario: un array de tipo char de tamaño 64.
• Octal: un array de tipo int de tamaño 21.
• Hexadecimal: un array de tipo char de tamaño 16.
ejemplo: el archivo va a asi:
427 671 +
4 7 &
70~
105 H
salida:
1011010000
100
000111
0x45
Entonces en ciertas operaciones habara dos operandos mas un operador o un operando y un operador, entonces necesito dos arreglos para guardas los dos valores que se operaran, y como los operando y el operador estan separados por espacios hice un while que mientras no se una espacio ' ' el alamecena ese valor en un arreglo pero mi problema esta en que como son dos arreglos no se como podria hacerlo, llevo preguntandole a mis amigos y no me han dado una solucion de como hacer que 427 este en un arreglo y 671 en otro y aparte como los tengo que pasar a binario tambien cree otro arreglo auxiliar, pero supongo que serian dos arreglos auxiliares no he podido hacer nada que necesite dos operando por eso problema que no se como podria llenar los dos arreglos, hice el negar pero no se si esta bien.
Código C:
Ver original
]#include <stdio.h> #include <stdlib.h> #include <string.h> int main (int argc, char** argv) { FILE *file1, *file2; char c; char cad [21]; char cadenita [21]; int aux [21]; int x,d,j,i,b; if (file1 ==NULL) { } else { for (i=0;i<=21;i++) { c=cad[i] ; } } if (c=='+'){ }else if (c=='&'){ }else if (c=='H'){ }else if (c== 'CA1'){ }else if(c== '~'){ for (j=0;j<=21;j++){ b=cad[j]; while ((b/2)!=0){ int t = b%2; b=b/2; aux[j]=t; } } for (d==0;d<=21;d++){ //aqui toma del arreglo de binario y coloca los 1 en 0 y visceversa if (aux[d]==1) { aux[d]=0; }else{ aux[d]=1; } } } } } return 0; }