The ones who are crazy enough to think they can change the world are the ones who do.- Steve Jobs

In my college days my programming friend makes a rigorous challenge with me. He asked me to divide two numbers without using division operator, it's sounds poor right. Division without using division operator is it possible for you?

You being a programmer, Impossible is nothing more than having two cups of coffee instead of a coffee, lets code a C program to **divide two numbers without using division operator.**

c-without-division-operator.c

#include <stdio.h> int division(int, int); int main() { int num1, num2; printf("\nEnter any two integers : "); scanf("%d %d ", &num1, &num2); printf("Result is %d ", division(num1, num2)); return 0; } int division(int num1, int num2) { int temp = 1, quotient = 0; while (num2 <= num1) { num2 <<= 1; temp <<= 1; } while (temp > 1) { num2 >>= 1; temp >>= 1; if(num1 >= num2) { num1 -= num2; quotient += temp; } } return quotient; }

Enter any two integers : 4 2 Result is : 2

Lets look closely in **first while-loop** inside **division** function.

**Iteration 1:** while(num2 <= num1);. i.e) while(2 <= 4)

- num2 = num2 << 1;
- num2 = 2 << 1
- num2 = 4;

- temp = temp << 1;
- temp = 1 << 1
- temp = 2;

**Iteration 2:** while(num2 <= num1);. i.e) while(4 <= 4)

- num2 = num2 << 1;
- num2 = 4 << 1
- num2 = 8;

- temp = temp << 1;
- temp = 2 << 1
- temp = 4;

Now looking closely in **second while-loop** inside **division** function Iteration 1: while(temp > 1) i.e) while(4 > 1)

- num2 = num2 >> 1
- num2 = 1000 >> 1
- num2 = 0100
- num2 = 4;

- temp = temp >> 1
- temp = 0100 >> 1
- temp = 0010
- temp = 2;

- num1 -= num2;
- num1 = num1 - num2;
- num1 = 4 - 4;
- num1 = 0;

- quotient = quotient + temp;
- quotient = 2;

**Iteration 3:** while( temp > 1);. ie) while(2 > 1) condition true

- num2 = num2 >> 1;
- num2 = 4 >> 1;
- num2 = 2;

- temp = temp >>1;
- temp = 2 >>1;
- temp = 1;

Condition fails, thus value inside quotient i.e) **2** is outputted.

We may make mistakes(spelling, program bug, typing mistake and etc.), So we have this container to collect mistakes. We highly respect your findings.

Report

We to update you

© Copyright 2018