+ 2

Why answer of this code is 8?

#include <iostream> using namespace std; int main() { int a=0; a=1<<3; cout<<a; return 0; }

31st Mar 2017, 9:33 AM
Dhananjay Panage
Dhananjay Panage - avatar
2 Answers
+ 5
because 1 = 0001. And your bitshift pushed the 1, 3 times to the left. 8 = 1000.
31st Mar 2017, 9:36 AM
Max_N
Max_N - avatar
+ 1
This is called bitwise operator, 1<<3 mean move 3 spaces to left the bit. 1 - Original 10 - One moved 100 - Two moved 1000 - Three moved. Now by default when printed on scren is showed on decimal, this mean you need transform from binary to decimal. 2^3 = 8 Extra: Bitwise accept number input on decimal also: Check if you want to eval: a = 4<<3 You need first param in binary this mean a = 100<<3 Now move three spaces to left a = 100 000 a = 2^5 = 32 Hope it helps.
31st Mar 2017, 9:57 AM
nextco
nextco - avatar