Using shift operator for faster division and multiplication

pradeep's Avatar author of Using shift operator for faster division and multiplication
This is an article on Using shift operator for faster division and multiplication in Programming.
Multiplications

12 * 2 = 12 << 1
12 * 4 = 12 << 2
12 * 8 = 12 << 3
12 * 16 = 12 << 4
12 * 32 = 12 << 5
12 * 64 = 12 << 6
12 * 128 = 12 << 7
12 * 256 = 12 << 8

Divisions

12 / 2 = 12 >> 1
12 / 4 = 12 >> 2
12 / 8 = 12 >> 3
12 / 16 = 12 >> 4
12 / 32 = 12 >> 5
12 / 64 = 12 >> 6
12 / 128 = 12 >> 7
12 / 256 = 12 >> 8


Code: C
#include<stdio.h>
 
 void main(void)
 {
   int a;
 
   a = 12 << 1;
 
   printf("%d",a);
 }
0
mayjune's Avatar, Join Date: Jun 2009
Invasive contributor
in machine terms,
for i12 / 256, 12 >> 8 is faster. Is that what you mean?
or just for easier calculations?
0
teacher's Avatar, Join Date: Mar 2011
Contributor
this method does not work if you have logic one at msb
for eg
Code: cpp
// before: binary equivalent 10000000
uint_8 t = 128;
t<<1;
// after: decimal equivalent : 0
// after: binary equivalent 00000000