Is it better to bitshift a value than to multiply by 2?


Any decent optimizing compiler will generate the same code no matter which way you write it. Use whichever form is more readable in the context in which it appears. The following program's assembler code can be viewed with a tool such as CODEVIEW on DOS/Windows or the disassembler (usually called "dis") on UNIX machines:

Example: Multiplying by 2 and shifting left by 1 are often the same.

void main()
  unsigned int test_nbr = 300;
  test_nbr *= 2;
  test_nbr = 300;
  test_nbr <<= 1;


© 2017