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

Dilithium’a Ihtiyac Yok

Boyle bir uzay/zaman bukulmesi bir baska bilim kurgu olayinin varligina olanak sagliyor: Isiktan hizli seyahat…

40 dakika ago

Yercekimi ve Cekimsizlik (levity)

Negatif enerjinin konsepti modern fizigin degisik dallarinda ortaya cikmaktadir. Kara deliklerle baglantisi olan gizemli objeler…

13 saat ago

TVR Sagaris

TVR SAGARIS The TVR Sagaris is a sports car designed and built by the British…

1 gün ago

Kozmik Komsunun Dostu

Uzaylilarla ilgili ilk merkez olan Sirius UFO Uzay Bilimleri Arastirma Merkezi Baskani Akdogan, 'Evrende yalniz…

2 gün ago

ABD 1 Trilyon Dolari Gozden Cikarmis

Amerikan Kongresi tarafindan hazirlanan rapor Irak ve Afganistan savaslarinin maliyetini 1 trilyon dolar olarak tespit…

2 gün ago

Ogrenci Kayitlari Artik 2-3 Dk. da Yapiliyor

Turkiye istatistik Kurumu tarafindan uygulamaya konulan Adrese Dayali Nufus Kayit Sistemi'nin bir asamasi daha devreye…

3 gün ago