suppose u have entered num as 11 (in binary it will be 0000000000001011)
<< is left shift operator and << i left shifts by i every time & is bitwise and operator returns 1 if both bits are 1 else return 0
1<<15 means left shift 1 in binary to left side by 15 places so it will be
0000000000000001<<15 =100000000000000
now for i=0
0000000000001011<<0 & 1000000000000000 =0 (with or without ? 1:0
for i=1
000......10110 &1000000000000000 =0 (with or without ? 1:0
and so on till i becomes 12 then it will retuen 1 as their is 1 on msb on both side of & operator
then 0 then 1 then 1 so ans will be
0000000000001011
so actually enetered number will be shown in its equvt binary equivalent