
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
Learn bitwise shifting operators, including left and right shifts, how they move bits, and that left shifts multiply by 2^n while right shifts divide by 2^n.
Determine if two numbers have opposite signs using bitwise operators and xor logic, leveraging sign bits and two's complement to print same or different signs.
Learn to multiply any number by 2.5 without using the multiplication operator by using bitwise left and right shifts and addition.
Compute the number of bit flips needed to convert one number to another by using xor to reveal differing bits and counting the ones, i.e., the hamming distance.
Compute the absolute value with bitwise operations only, with no branching or abs function, by creating a sign mask via right shift, adding it, then xor-ing with the mask.
Crack the coding rounds and interviews whenever a question on bit manipulation is asked!
Welcome to the specific course on 'Bit Manipulation Algorithms'. This course will give you a deep understanding on how the numbers work as bits and bytes inside your computer and how to operate on bit level as a programmer?
The course will begin with the basics of converting decimals into bits, operating on those bits using operators such as Bitwise AND, OR, NOT and XOR and the most powerful operators like left and right shifts, the architectural features such as Little Endian and Big Endian.
Problems that are solved using Bitwise Algorithms:
1. Checking whether the two numbers have different signs
2. Clearing the Least Significant Bit
3. Finding out the all alone element in an array
4. Add 1 to the given number without using +1
5. Multiplying a number with 2.5 without using '*2.5'
6. Printing whether the given number is a power of 2
7. Finding out the XOR of two numbers without using XOR
8. Count the number of bits that have to be flipped to convert from A to B given two numbers A and B
9. Swap the two nibbles in a byte.
and so on.
The algorithms will be clearly explained and implementation will be done in anyone of your favorite programming languages. A basic knowledge in programming is preferred but not a strong requirement.