Binary …. yani ikilik düzeyde çarpma yapan ve bunu size adım adım gösteren C programı.


Doğu Akdeniz Üniversitesi Bilgisayar Mühendisliği 1. Sınıf ödevlerinden birisiydi.


#include <stdio.h>


#include <dos.h>


#include <conio.h>


#include <iostream.h>


#define size2 8


 


void first(void);


void second(void);


void result(void);


void show(void);


void add(void);


void shift(void);


void dec2bin (int ,int []);


void unsign(void);


void mm2(void);


int t,re,i=0,iz=0;


int secim;


int buffer[size2];


int deger=0,diger=0;


long res=0;


int multiplicand,multiplier,m[size2],q[size2];


int carry;


int m2[size2];


 


void main()


{


 do


 {


  clrscr();


  printf(”

Please Enter Which Technic you will use … “);


  printf(”
  =====>  1 for Unsigned <=====    “);


  printf(”
  =====>  2 for Boot’s   <=====    “);


  printf(”
  =====>  “);


  scanf(“%d”,&secim);


 }while((secim<0)||(secim>2));


 if(secim==1)


  first();


 else


  second();


}


 


void first()


{


 do


 {


  clrscr();


  printf(“Enter a Integer numer : “);


  scanf(“%d”,&multiplicand);


  printf(”
Enter other Integer number : “);


  scanf(“%d”,&multiplier);


 }while((multiplicand<0)||(multiplier<0));


 dec2bin (multiplicand,q);


 dec2bin (multiplier,m);


 unsign();


 getch();


}


 


void dec2bin (int dec,int arr[])


{


 int input = dec;


 int count = 0;


 do


 {


  i = input%2;


  arr[count] = i;


  input = input/2;


  count++;


 }while (input > 0);


 for(i=count;i<size2;i++)


 {


  arr[i]=0;


 }


 count=size2;


 printf (“Binary representation is: “);


 do


 {


  printf (“%d”, arr[count – 1]);


  count–;


 } while (count > 0);


 printf (”
“);


}


 


void unsign()


{


 t=size2;


 carry=0;


 for(i=0;i<size2;i++)


  buffer[i]=0;


 show();


 do


 {


  if(q[0]==0)


  {


            shift();


            show();


            t–;


            iz++;


            printf(” %d .part

“,iz);


  }


  else if(q[0]==1)


  {


            add();


            shift();


            show();


            t–;


            iz++;


            printf(” %d .part

“,iz);


  }


 }while(t>0);


 result();


}


 


void result(void)


{


 int counter=0;


 diger=0;


 for(i=0;i<size2;i++)


 {


  deger=q[i];


  diger=diger*2;


  if(counter==0)


    diger=1;


  printf(”
%d %d”,deger,diger);


  res+=deger*diger;


  ++counter;


 }


 printf(”
“);


 for(i=0;i<size2;i++)


 {


  deger=buffer[i];


  diger=diger*2;


  printf(”
%d %d”,deger,diger);


  res+=deger*diger;


  ++counter;


 }


 printf(”

Your result is %d”,res);


}


 


void show(void)


{


 printf(”
%d “,carry);


 for(i=size2-1;i>=0;i–)


  printf(“%d”,buffer[i]);


 printf(” “);


 for(i=size2-1;i>=0;i–)


  printf(“%d”,q[i]);


 printf(” “);


 for(i=size2-1;i>=0;i–)


  printf(“%d”,m[i]);


 printf(” “);


}


 


void shift(void)


{


 for(i=0;i<size2-1;i++)


  q[i]=q[i+1];


 q[size2-1]=buffer[0];


 for(i=0;i<size2-1;i++)


  buffer[i]=buffer[i+1];


 buffer[size2-1]=carry;


}


 


void add(void)


{


 for(i=0;i<size2-1;i++)


 {


  if((buffer[i]==0)&&(m[i]==0)&&(carry==0))


  {


    buffer[i]=0;


            carry=0;


  }


  else if((buffer[i]==0)&&(m[i]==0)&&(carry==1))


  {


    buffer[i]=1;


            carry=0;


  }


  else if((buffer[i]==0)&&(m[i]==1)&&(carry==0))


  {


    buffer[i]=1;


            carry=0;


  }


  else if((buffer[i]==1)&&(m[i]==0)&&(carry==0))


  {


    buffer[i]=1;


            carry=0;


  }


  else if((buffer[i]==1)&&(m[i]==1)&&(carry==1))


  {


    buffer[i]=1;


    carry=1;


  }


  else if((buffer[i]==1)&&(m[i]==1)&&(carry==0))


  {


    buffer[i]=0;


    carry=1;


  }


  else if((buffer[i]==1)&&(m[i]==0)&&(carry==1))


  {


    buffer[i]=0;


    carry=1;


  }


  else if((buffer[i]==0)&&(m[i]==1)&&(carry==1))


  {


    buffer[i]=0;


    carry=1;


  }


 }


 show();


 printf(” Added..”);


}


 


void second()


{


 clrscr();


 printf(“Enter a Integer numer : “);


 scanf(“%d”,&multiplicand);


 printf(”
Enter other Integer number : “);


 scanf(“%d”,&multiplier);


 dec2bin (multiplicand,q);


 dec2bin (multiplier,m);


 mm2();


}


 


void mm2()


{


 for(i=size2-1;i>=0;i–)


 {


  deger=m[i];


  if(deger==1)


    m2[i]=0;


  else


    m2[i]=1;


 }


 for(i=size2-1;i>=0;i–)


 {


  deger=m2[i];


  if((deger==1)&&(carry==0))


  {


    m2[i]=0;


    carry=1;


  }


  else if((m2[i]==0)&&(carry==1))


  {


    m2[i]=1;


    carry=0;


  }


  else if((m2[i]==0)&&(carry==0))


  {


    m2[i]=0;


    carry=0;


  }


  else if((m2[i]==1)&&(carry==1))


    m2[i]=0;


 }


 for(i=size2-1;i>=0;i–)


 printf(“%d”,m[i]);


 printf(”
“);


 for(i=size2-1;i>=0;i–)


printf(“%d”,m2[i]);
getch();


}


belgesi-411
Belgeci

Share
Published by
Belgeci

Recent Posts

Kişilik Tipleri

Çeşitli kişilik testleri belli gruptan insanlar  arasındaki benzerlikleri vurgular. Yine de, diğerleriyle olan tüm benzerliklerine…

2 saat ago

BİOGAZ

İnsanoğlunun çok süratli bir şekilde artan ihtiyaçlarına cevap veren sosyal ve endüstriyel gelişmeler, beraberinde bazı…

14 saat ago

Boşaltım Sistemi

Boşaltım sistemi vücutta homeostazın sağlanmasında çok önemli bir yere sahiptir.Böbrekler, üreterler ve mesaneden oluşan boşaltım…

1 gün ago

Atatürk ve Spor

Büyük Atatürk'ün ölümünü takip eden günlerde, o zamanlar yalnız Avrupa'nın değil, dünyanın en güçlü günlük…

2 gün ago

Atatürk’ün Hayatı

 Mustafa Kemal Atatürk 1881 yılında Selânik'te Kocakasım Mahallesi, Islâhhâne Caddesi'ndeki üç katlı pembe evde doğdu.…

2 gün ago

Özdeşlik

Bir şeyin başka bir şey değil de zorunlu olarak kendisi olması; bir şeyin kendisiyle bir…

3 gün ago