0% found this document useful (0 votes)
19 views

Division Algorithm

The document describes a C program that implements the division algorithm. The program takes a divisor and dividend as input, performs binary division operations, and outputs the quotient and remainder. It initializes arrays to store the divisor, dividend, quotient, and remainder. It then performs left shifts and subtracts or adds the divisor to calculate each bit of the quotient until the division is complete.

Uploaded by

lisa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views

Division Algorithm

The document describes a C program that implements the division algorithm. The program takes a divisor and dividend as input, performs binary division operations, and outputs the quotient and remainder. It initializes arrays to store the divisor, dividend, quotient, and remainder. It then performs left shifts and subtracts or adds the divisor to calculate each bit of the quotient until the division is complete.

Uploaded by

lisa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 29

DIVISION ALGORITHM

Programme:
#include<stdio.h>

void main ()

int a[10], m[10], q[10], i, j, c = 0, b[10], mc[10], z = 0, s[10], x[10];

printf ("\nEnter Divisor [M] : ");

for (i = 4; i >= 1; i--)

scanf ("%d", &m[i]);

mc[i] = !m[i];

a[i] = 0, x[i] = 0;

x[1] = 1, x[5] = 0, m[5] = 0, mc[5] = 1;

for (i = 1; i <= 5; i++)


{

s[i] = x[i] ^ mc[i] ^ z;

c = (x[i] && mc[i]) || (x[i] && z) || (mc[i] && z);

z = c;

mc[i] = s[i];

printf ("\n\nEnter Divident [Q] : ");

for (i = 4; i >= 1; i--)

scanf ("%d", &q[i]);

printf ("\n\n\n Step \t\t Action Performed \t\t A \t\tQ\n");

printf ("\n\n 0\t\t Initialization\t 0 0 0 0 0 \t ");

for (i = 4; i >= 1; i--)

{
printf (" %d", q[i]);

for (j = 1; j <= 4; j++)

printf ("\n\n\n %d", j);

printf ("\t\t Left Shift \t\t ");

for (i = 5; i >= 2; i--)

a[i] = a[i - 1];

a[1] = q[4];

for (i = 4; i >= 2; i--)

q[i] = q[i - 1];

for (i = 5; i >= 1; i--)


{

printf (" %d", a[i]);

printf ("\t ");

for (i = 4; i >= 2; i--)

printf (" %d", q[i]);

if (a[5] == 0)

z = 0;

for (i = 1; i <= 5; i++)

s[i] = a[i] ^ mc[i] ^ z;

c = (a[i] && mc[i]) || (a[i] && z) || (mc[i] && z);


z = c;

a[i] = s[i];

if (a[5] == 1)

q[1] = 0;

else

q[1] = 1;

printf ("\n\n\t\t a = a-m\t\t ");

for (i = 5; i >= 1; i--)

printf (" %d", a[i]);

}
printf ("\t ");

for (i = 4; i >= 1; i--)

printf (" %d", q[i]);

else

z = 0;

for (i = 1; i <= 5; i++)

s[i] = a[i] ^ m[i] ^ z;

c = (a[i] && m[i]) || (a[i] && z) || (m[i] && z);

z = c;

a[i] = s[i];
}

if (a[5] == 1)

q[1] = 0;

else

q[1] = 1;

printf ("\n\n\t\t a = a+m\t\t ");

for (i = 5; i >= 1; i--)

printf (" %d", a[i]);

printf ("\t ");

for (i = 4; i >= 1; i--)


{

printf (" %d", q[i]);

if (a[5] == 1)

printf ("\n\n\n 5");

for (i = 1; i <= 5; i++)

s[i] = a[i] ^ m[i] ^ z;

c = (a[i] && m[i]) || (a[i] && z) || (m[i] && z);

z = c;

a[i] = s[i];

}
printf ("\t\t a = a+m\t\t ");

for (i = 5; i >= 1; i--)

printf (" %d", a[i]);

printf ("\t ");

for (i = 4; i >= 1; i--)

printf (" %d", q[i]);

printf ("\n\n\n\n\nQuotient [Q] :");

for (i = 4; i >= 1; i--)

printf (" %d", q[i]);

}
printf ("\n\n\n\nRemainder [A] :");

for (i = 4; i >= 1; i--)

printf (" %d", a[i]);

#include<stdio.h>

void main ()

int a[10], m[10], q[10], i, j, c = 0, b[10], mc[10], z = 0, s[10], x[10];

printf ("\nEnter Divisor [M] : ");

for (i = 4; i >= 1; i--)

scanf ("%d", &m[i]);

mc[i] = !m[i];
a[i] = 0, x[i] = 0;

x[1] = 1, x[5] = 0, m[5] = 0, mc[5] = 1;

for (i = 1; i <= 5; i++)

s[i] = x[i] ^ mc[i] ^ z;

c = (x[i] && mc[i]) || (x[i] && z) || (mc[i] && z);

z = c;

mc[i] = s[i];

printf ("\n\nEnter Divident [Q] : ");

for (i = 4; i >= 1; i--)

scanf ("%d", &q[i]);

printf ("\n\n\n Step \t\t Action Performed \t\t A \t\tQ\n");


printf ("\n\n 0\t\t Initialization\t 0 0 0 0 0 \t ");

for (i = 4; i >= 1; i--)

printf (" %d", q[i]);

for (j = 1; j <= 4; j++)

printf ("\n\n\n %d", j);

printf ("\t\t Left Shift \t\t ");

for (i = 5; i >= 2; i--)

a[i] = a[i - 1];

a[1] = q[4];

for (i = 4; i >= 2; i--)


{

q[i] = q[i - 1];

for (i = 5; i >= 1; i--)

printf (" %d", a[i]);

printf ("\t ");

for (i = 4; i >= 2; i--)

printf (" %d", q[i]);

if (a[5] == 0)

z = 0;

for (i = 1; i <= 5; i++)


{

s[i] = a[i] ^ mc[i] ^ z;

c = (a[i] && mc[i]) || (a[i] && z) || (mc[i] && z);

z = c;

a[i] = s[i];

if (a[5] == 1)

q[1] = 0;

else

q[1] = 1;

printf ("\n\n\t\t a = a-m\t\t ");


for (i = 5; i >= 1; i--)

printf (" %d", a[i]);

printf ("\t ");

for (i = 4; i >= 1; i--)

printf (" %d", q[i]);

else

z = 0;

for (i = 1; i <= 5; i++)

s[i] = a[i] ^ m[i] ^ z;


c = (a[i] && m[i]) || (a[i] && z) || (m[i] && z);

z = c;

a[i] = s[i];

if (a[5] == 1)

q[1] = 0;

else

q[1] = 1;

printf ("\n\n\t\t a = a+m\t\t ");

for (i = 5; i >= 1; i--)

{
printf (" %d", a[i]);

printf ("\t ");

for (i = 4; i >= 1; i--)

printf (" %d", q[i]);

if (a[5] == 1)

printf ("\n\n\n 5");

for (i = 1; i <= 5; i++)

s[i] = a[i] ^ m[i] ^ z;

c = (a[i] && m[i]) || (a[i] && z) || (m[i] && z);


z = c;

a[i] = s[i];

printf ("\t\t a = a+m\t\t ");

for (i = 5; i >= 1; i--)

printf (" %d", a[i]);

printf ("\t ");

for (i = 4; i >= 1; i--)

printf (" %d", q[i]);

printf ("\n\n\n\n\nQuotient [Q] :");


for (i = 4; i >= 1; i--)

printf (" %d", q[i]);

printf ("\n\n\n\nRemainder [A] :");

for (i = 4; i >= 1; i--)

printf (" %d", a[i]);

#include<stdio.h>

void main ()

int a[10], m[10], q[10], i, j, c = 0, b[10], mc[10], z = 0, s[10], x[10];

printf ("\nEnter Divisor [M] : ");

for (i = 4; i >= 1; i--)


{

scanf ("%d", &m[i]);

mc[i] = !m[i];

a[i] = 0, x[i] = 0;

x[1] = 1, x[5] = 0, m[5] = 0, mc[5] = 1;

for (i = 1; i <= 5; i++)

s[i] = x[i] ^ mc[i] ^ z;

c = (x[i] && mc[i]) || (x[i] && z) || (mc[i] && z);

z = c;

mc[i] = s[i];

printf ("\n\nEnter Divident [Q] : ");

for (i = 4; i >= 1; i--)


{

scanf ("%d", &q[i]);

printf ("\n\n\n Step \t\t Action Performed \t\t A \t\tQ\n");

printf ("\n\n 0\t\t Initialization\t 0 0 0 0 0 \t ");

for (i = 4; i >= 1; i--)

printf (" %d", q[i]);

for (j = 1; j <= 4; j++)

printf ("\n\n\n %d", j);

printf ("\t\t Left Shift \t\t ");

for (i = 5; i >= 2; i--)

a[i] = a[i - 1];


}

a[1] = q[4];

for (i = 4; i >= 2; i--)

q[i] = q[i - 1];

for (i = 5; i >= 1; i--)

printf (" %d", a[i]);

printf ("\t ");

for (i = 4; i >= 2; i--)

printf (" %d", q[i]);

}
if (a[5] == 0)

z = 0;

for (i = 1; i <= 5; i++)

s[i] = a[i] ^ mc[i] ^ z;

c = (a[i] && mc[i]) || (a[i] && z) || (mc[i] && z);

z = c;

a[i] = s[i];

if (a[5] == 1)

q[1] = 0;

else

{
q[1] = 1;

printf ("\n\n\t\t a = a-m\t\t ");

for (i = 5; i >= 1; i--)

printf (" %d", a[i]);

printf ("\t ");

for (i = 4; i >= 1; i--)

printf (" %d", q[i]);

else

{
z = 0;

for (i = 1; i <= 5; i++)

s[i] = a[i] ^ m[i] ^ z;

c = (a[i] && m[i]) || (a[i] && z) || (m[i] && z);

z = c;

a[i] = s[i];

if (a[5] == 1)

q[1] = 0;

else

q[1] = 1;

}
printf ("\n\n\t\t a = a+m\t\t ");

for (i = 5; i >= 1; i--)

printf (" %d", a[i]);

printf ("\t ");

for (i = 4; i >= 1; i--)

printf (" %d", q[i]);

if (a[5] == 1)

printf ("\n\n\n 5");


for (i = 1; i <= 5; i++)

s[i] = a[i] ^ m[i] ^ z;

c = (a[i] && m[i]) || (a[i] && z) || (m[i] && z);

z = c;

a[i] = s[i];

printf ("\t\t a = a+m\t\t ");

for (i = 5; i >= 1; i--)

printf (" %d", a[i]);

printf ("\t ");

for (i = 4; i >= 1; i--)

printf (" %d", q[i]);


}

printf ("\n\n\n\n\nQuotient [Q] :");

for (i = 4; i >= 1; i--)

printf (" %d", q[i]);

printf ("\n\n\n\nRemainder [A] :");

for (i = 4; i >= 1; i--)

printf (" %d", a[i]);

You might also like