Thursday 17 September 2009

Program C Jumlah dan Geser Biner

#include
#include

int pangkat(int x,int nCtr);
void main()
{
int biner1[8]={1,1,0,1,1,1,1,0};
int biner2[8]={1,1,0,0,1,1,0,1};
int hasil[8],jumbin[9],nilai[8];
int desimal1, desimal2,sisa, jumdes;
int nCtr,temp;
printf("Diketahui : \n");
printf("Biner A : 01111011\n");
printf("Biner B : 11001101\n");
for(nCtr=0,desimal1=0;nCtr<8;nCtr++)
    {
    if(biner1[nCtr]==0)
        {
        nilai[nCtr]=0;
        hasil[nCtr]=nilai[nCtr];
        }
        else if(biner1[nCtr]==1)
             {
             nilai[nCtr]=pangkat(2,nCtr);
             hasil[nCtr]=nilai[nCtr];
             }
        desimal1+=hasil[nCtr];
    }

for(nCtr=0,desimal2=0;nCtr<8;nCtr++)
    {
    if(biner2[nCtr]==0)
        {
        nilai[nCtr]=0;
        hasil[nCtr]=nilai[nCtr];
        }
        else if(biner2[nCtr]==1)
             {
             nilai[nCtr]=pangkat(2,nCtr);
             hasil[nCtr]=nilai[nCtr];
             }
        desimal2+=hasil[nCtr];
    }
printf("maka konversi Heksa\nBiner A : %X \n",desimal1);
printf("Biner B : %X \n",desimal2);
jumdes=desimal1+desimal2;
printf("Jumlah    :%X \n", jumdes);
for(nCtr=0;nCtr<10;nCtr++)
    {
    sisa=jumdes%2;
    if(jumdes%2==0)
      {
      jumbin[nCtr]=0;
      }
    else if(jumdes%2==1)
             {
             jumbin[nCtr]=1;
             }
    jumdes=(jumdes-sisa)/2;
    }

printf("Hasil Jumlah Biner : \n");
printf(" 01111011\n 10110011\n");
printf("----------+\n");
for(nCtr=8;nCtr>=0;nCtr--)
    {
    printf("%d",jumbin[nCtr]);
    }
printf("\nHasil Geser Kanan : \n");
temp=jumbin[0];
for(nCtr=0;nCtr<8;nCtr++)
    {
    jumbin[nCtr]=jumbin[nCtr+1];
    }
jumbin[8]=temp;
 for (nCtr=8;nCtr>=0;nCtr--)
    {
    printf ("%d",jumbin[nCtr]) ;
    }
printf("\nHasil Geser Kiri : \n");
jumbin[0]=jumbin[7];
temp=jumbin[8];
for(nCtr=8;nCtr>1;nCtr--)
    {
     jumbin[nCtr]=jumbin[nCtr-2];
    }
jumbin[1]=temp;
for (nCtr=8;nCtr>=0;nCtr--)
    {
    printf ("%d",jumbin[nCtr]) ;
    }

getch();
}

int pangkat(int x,int nCtr)
{
if(nCtr==1)
    {return 2;}
    else if(nCtr==0)
            {return 1;}
        else
            {return x*pangkat(2,nCtr-1);}
}