• Home
  • Subscribe
  • Contribute Us
    • Share Your Interview Experience
  • Contact Us
  • About
    • About CSEstack
    • Campus Ambassador
  • Forum & Discus
  • Tools for Geek
  • LeaderBoard
CSEstack

What do you want to Learn Today?

  • Programming
    • Tutorial- C/C++
    • Tutorial- Django
    • Tutorial- Git
    • Tutorial- HTML & CSS
    • Tutorial- Java
    • Tutorial- MySQL
    • Tutorial- Python
    • Competitive Coding Challenges
  • CSE Subject
    • (CD) Compiler Design
    • (CN) Computer Network
    • (COA) Computer Organization & Architecture
    • (DBMS) Database Management System
    • (DS) Data Structure
    • (OS) Operating System
    • (ToA) Theory of Automata
    • (WT) Web Technology
  • Interview Questions
    • Interview Questions- Company Wise
    • Interview Questions- Coding Round
    • Interview Questions- Python
    • Interview Questions- REST API
    • Interview Questions- Web Scraping
    • Interview Questions- HR Round
    • Aptitude Preparation Guide
  • GATE 2022
  • Linux
  • Trend
    • Full Stack Development
    • Artificial Intelligence (AI)
    • BigData
    • Cloud Computing
    • Machine Learning (ML)
  • Write for Us
    • Submit Article
    • Submit Source Code or Program
    • Share Your Interview Experience
  • Tools
    • IDE
    • CV Builder
    • Other Tools …
  • Jobs

Divide and Multiply a number by Two using Bitwise Operator (Without ‘*’, ‘/’)

Om Tayade/1512/0
C / C++Code

Why use left-shift and right-shift operators instead of generic divide(/) and multiply(*) operators? 

Explanation:

The ‘/’ and ‘*’ operators can be very time-consuming especially in solving coding contests or competitive programming questions. So to boost up the performance of your code use left-shift (<<) and right-shift (>>) operators.

Multiply by Two using Left Shift Operator

Example:

12 * 2 = 12 << 1
17 * 2 = 17 << 1

C++ Code:

#include <iostream>
using namespace std;
 
int main()
{
   //number is 16
   int num = 16;

   int res = num<<1;
   cout<<"Origional number: "<<num<<endl;
   cout<<"Multiply by two: "<<res<<endl;

   return 0;
}

Output:

Origional number: 16 
Multiply by two: 32

Divide by Two using Right Shift Operator

Example:

12/2 = 12>>1 
17/2 = 17>>1

C++ Code:

#include <iostream>
using namespace std;
 
int main()
{
   //number is 16
   int num = 16;

   int res = num>>1;

   cout<<"Origional number: "<<num<<endl;
   cout<<"Divide by two: "<<res<<endl;
   return 0;
}

Output:

Origional number: 16 
Divide by two: 8

Just like the left and right shift operator, you can use the logical AND operator to check whether the given number is odd or even.

This is a very simple trick to divide and multiply a number by two using bitwise operator. To know more about such simple and powerful bitwise operations, check the bitwise coding question list in the data structure and coding questions.

All the best!

bit manipulationcpp
Om Tayade
I'm pursuing B.Tech in Computer Science from Pune Institute of Computer Technology. I'm avid learner and enthusiastic programmer.

Your name can also be listed here. Got a tip? Submit it here to become an CSEstack author.

Leave a Reply Cancel reply

C Programming

  1. C- Introduction
  2. C- Compile & Execute Program
  3. C- Data Types
  4. C- if-else statement
  5. C- While, do-while, for loop
  6. C- Array
  7. C- Function (Types/Call)
  8. C- strlen() vs sizeof()
  9. C- Nested Switch Statement
  10. C- Recursion
  11. C- Dynamic Programming
  12. C- Storage Classes
  13. C- Creating Header File
  14. C- Null Pointer
  15. C- Stack and Queue
  16. C- Implement Stack using Array
  17. C- Implement Linked List in C
  18. C- File Handling
  19. C- Makefile Tutorial

Object Oriented Concepts in C++

  • C++: C vs OOPs Language
  • C++: Introduction to OOPs Concepts
  • C++: Inheritance

Sorting Algorithms

  • Different Types of Sorting Algo
  • Selection Sort
  • Bubble Sort
  • Quick Sort

Programming for Practice

  1. Online C/C++ Compiler

String Handling:

  1. Remove White Spaces from String
  2. Implement strstr Function in C
  3. Convert String to Int – atoi()
  4. Check if String is Palindrome
  5. Check if Two Strings are Anagram
  6. Split String in using strtok_r()
  7. Undefined reference to strrev

Array:

  1. Check if Array is Sorted

Bit Manipulation:

  1. Count Number of 1’s in Binary

Linked List:

  1. Reverse a Linked List Elements

Number System:

  1. Program to Find 2’s Complement
  2. Convert Decimal to Binary in C

Tricky Questions:

  1. Add Two Numbers without Operator
  2. Find Next Greater Number
  3. Swap values without temp variable
  4. Print 1 to 100 without Loop

Interview Coding Questions

  • 50+ Interview Coding Questions

© 2022 – CSEstack.org. All Rights Reserved.

  • Home
  • Subscribe
  • Contribute Us
    • Share Your Interview Experience
  • Contact Us
  • About
    • About CSEstack
    • Campus Ambassador
  • Forum & Discus
  • Tools for Geek
  • LeaderBoard