0 0 votes closed with the note: got the answer. consider temp=1; temp+=temp*temp<<2+3; printf(“%d”,temp); // this line will print output as $33$ how?? Line number 2 can be written as: temp=temp+temp*temp<<2+3; my doubt is: *>+>» is the order of execution according to precedence rule; now temp= 1+1*1<<2+3; temp=1+1<<2+3 how $33$ will come?? please someone explain this?? Programming in C programming-in-c + – Hira Thakur 489 views comment Share Follow Print See 1 comment 1 1 comment reply Yaman Sahu commented Dec 12, 2021 reply Follow flag If Line 2 is written as “temp=temp+temp*temp<<2+3;” Then change the order of precedence because we evaluate first “+” and then “<<” If Line 2 is written as “temp+= temp*temp<<2+3;” we evaluate first “<<” and then “+=” ex: temp = 1 If line 2 is written as temp=temp+temp*temp<<2+3; temp = 1 + 1 * 1<<2 + 3 temp = 1 + 1<<2 + 3 temp = 2 <<5 temp = 64 If line 2 is written as temp+= temp*temp<<2+3; temp += 1 * 1<<2+3 temp += 1 <<2+3 temp += 1<<5 temp += 32 temp = 33 5 5 replyShare Please log in or register to add a comment.