Divide two integers without * / and % in C#

Divide two integers without *, / and % in C#. Learn how to divide two numbers with bitwise operators,’+ and _’ amd recursive functions.

Divide two integers without *, / and % in C#

For Example there are 2 numbers number1 and number2 where number1 = 11 and number2=3, then division of number1 and number2 is 3

i.e, number1/number2=11/3=3;

In the above example number1 is dividend, and number2 is divisor.

Note:
If number1 is less than the number2 then division of num1,num2 is 0

We can use bitwise operators to perform division operation.

Here is the example program to divide 2 numbers using bitwise left shift operator.

c# Example program- divide 2 numbers using bitwise operator.

STEP 1: perform multiplication operation with bitwise left shift operator until the number in the temp variable > num1 variable
STEP2 : perform addition operation until the number in the temp+num2 <=1

using System;
class Program
{
static void Main(string[] args)
{
int num1 = 11, num2 = 3, quotient = 1, temp;

temp = num2;
//STEP1
//if divisor number is less than the dividend number then 
// the code in the if block will be executed
//else execute the code in the else bock
if (num2 <= num1)
{
int i = 1;
//perform multiplication operation with 
//bitwise left shift operator 
//until the number in the temp variable > num1 variable 
while (((temp << i) - num1) < 0)
{
temp = num2 << i;
quotient = quotient << 1;
}

// perform addition operation
// until the number in the temp+num2 <=1
while ((temp + num2) <= num1)
{
temp = temp + num2;
quotient = quotient + 1;
}

}
else
{
//quotient is 0 if divisior is > dividend
quotient = 0;

}
Console.WriteLine("Division of 2 numbers " + num1 + 
" and " + num2 + " = " + quotient);

}
}

Output

Division of 2 numbers 11 and 3 = 3

c# Example program using +,- operators

//subtract the dividend with divisior till dividend is
//lessthan or equal to divisior

class Program
{
static void Main(string[] args)
{
int num1 = 11, num2 = 3, quotient = 0;

if (num1 >= num2)
{
while (num1 >= num2)
{
//subtract the dividend with divisior till dividend is
//lessthan or equal to divisior
num1 = num1 - num2;
++quotient;
}
}
else
{
quotient = 0;
}
Console.WriteLine("Division of 2 numbers " + num1 + 
" and " + num2 + " = " + quotient);
}
}

c# Example program using recursion

class Program
{
public int quotient = 0;
static void Main(string[] args)
{
int num1 = 11, num2 = 3, quotient;

Program p=new Program();
quotient= p.divide(num1,num2);

Console.WriteLine("Division of 2 numbers " + num1 + 
" and " + num2 + " = " + quotient);
}
public int divide(int num1,int num2)
{
if (num1 < num2)
{
return 0;
}
else
{
return divide(num1 - num2, num2) + 1;
}

}
}

Related Posts