/ Published in: C++
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
#include <stdio.h> #include <conio.h> #include <string.h> #include <iostream.h> #include <math.h> int binarioaentero(int nbinario[]); void enteroabinario(int decimal,int ver); int cacheasignado(int decimal); int main() { int nbinario[8],decimal; printf("Digite un numero binario de 8bits: "); scanf("%d",&nbinario); decimal=binarioaentero(nbinario); printf("Dir. Ref. Decimal\t"); printf("Dir. Ref. Binaria\t"); printf("Bloque de Cache Asignado\n"); printf("\t%i\t\t",decimal); enteroabinario(decimal,0); printf("\t\t\t"); enteroabinario(cacheasignado(decimal),0); printf("\n\n"); printf("Indice\t\t"); printf("V\t\t"); printf("Etiqueta\t\t"); printf("Datos\n"); enteroabinario(cacheasignado(decimal),0); printf("\t\tY"); printf("\t\t"); enteroabinario(decimal,1); printf("\t\t\t"); enteroabinario(decimal,2); return 0; } int binarioaentero(int nbinario[]){ int i=0; int dec=0; int p=0; int binario=*nbinario; while(binario>0){ i=binario%10; dec+=i*(int)pow(i*2,p++); binario /=10; } return dec; } void enteroabinario(int decimal,int ver){ int i,binario[5]; for(i=0;i<5;i++){ binario[i]=0; } int lleva,cont=5; while(decimal!=0){ lleva=decimal%2; //printf("%d",lleva); cont--; binario[cont]=lleva; decimal=decimal/2; } switch(ver){ case 0: for(i=0;i<5;i++) printf("%d",binario[i]); break; case 1: for(i=0;i<2;i++) printf("%d",binario[i]); break; case 2: for(i=2;i<5;i++) printf("%d",binario[i]); break; } } int cacheasignado(int decimal){ int i,cont=0,asignado=0; for(i=3;i<32;i+=4){ if(decimal<=i){ asignado=cont; i=33; } cont++; } return asignado; }