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();
}
Asya'da kitle halindeki bu ayaklanmanın sebepleri Türkiye'de bulunmaktadır ve bu akım mütarekeden sonra başlamıştır. Bunu…
1920 yılının Ağustos ve Eylül aylarında Bakû'da toplanan ikinci kongrede Lenin, Doğu için, en acil…
Dukas, şehre girişi, Ulubatlı Hasan efsanesi temelinde değil de, açık bırakılmış olan Kerkoporta Kapısı'ndan gerçekleştiğini,…
Hiçbir şey, bir yığın hatırayı sıraya koymak için gereken ilk sessizlik anları kadar değerli olamaz.…
The role of technology in reshaping the gambling landscape The Evolution of Online Gambling The…
2.1. Heck Coupling 2.1.1. Tanım 2.1.2. Katalitik Döngü Şekil 2.1.1. Klasik Heck döngüsünün mekanizması.…