### Discussion :: Bitwise Operators - Point Out Correct Statements (Q.No.1)

Viraj said: (Nov 21, 2010) | |

1 <<15 = -32768 i.e. 1000 0000 0000 0000 In the loop the bits of 'num' are brought to the MSB one by one using left shift and ANDed with the 1000 0000 0000 0000 |

Mohanty said: (Aug 6, 2011) | |

What is "i<16"? |

Abhishek said: (Sep 19, 2011) | |

@Mohanty num<<i shifts one bit, so to shift 16 bits the condition is set as i<16 |

Ankit said: (Dec 26, 2011) | |

Please explain it clearly. |

Sadhna said: (Jan 21, 2012) | |

Hi, I have a doubt in printf statement it will print either 0 or 1 as we are printing the result of a conditional statement, can someone explain this to me ? |

Prem said: (Jan 30, 2012) | |

If the condition is true it will print as 1 otherwise 0. |

Bhakar said: (Feb 6, 2012) | |

for(i=0; i<16; i++) { printf("%d", (num<<i & 1<<15)?1:0); } Lets assume num = 4. Then num<<0 =0000 0000 0000 0100 & (1000 0000 0000 0000 this is 1<<15) = (all 0 so false condion so 0 PRINT 0 same repeat Then num<<1 =0000 0000 0000 1000 & (1000 0000 0000 0000 this is 1<<15)= (all 0 so false condion so 0 PRINT 0 AT 14 LOOP POSITION Then num<<14 =1000 0000 0000 0000 & (1000 0000 0000 0000 this is 1<<15)= (all 1000 0000 0000 0000 so TRUE condion so 1 PRINT 1 0000 0000 0000 0100 |

Haritha said: (Aug 24, 2012) | |

Please explain it more clearly. |

Uma Shnakr said: (Aug 28, 2012) | |

for(i=0; i<16; i++) { printf("%d", (num<<i & 1<<15)?1:0); } Lets assume num = 2. Then num<<0 =0000 0000 0000 0100 & (1000 0000 0000 0000 this is 1<<15) = (all 0 so false condion so 0 PRINT 0 printed yet=0 same repeat Then num<<1 =0000 0000 0000 1000 & (1000 0000 0000 0000 this is 1<<15)= (all 0 so false condion so 0 PRINT 0 printed yet=00 Then num<<2 =0000 0000 0000 1000 & (1000 0000 0000 0000 this is 1<<15)= (all 0 so false condion so 0 PRINT 0 printed yet=000 ............... AT 14 LOOP POSITION Then num<<14 =1000 0000 0000 0000 & (1000 0000 0000 0000 this is 1<<15)= (all 1000 0000 0000 0000 so TRUE condion so 1 PRINT 1 printed yet=000000000000001 0000 0000 0000 0100 AT 15 LOOP POSITION Then num<<15 =1000 0000 0000 0000 & (1000 0000 0000 0000 this is 1<<15)= (all 1000 0000 0000 0000 so TRUE condion so 1 PRINT 0 printed yet=0000000000000010 hence finaly we have 0000000000000010=2 |

Mahendra said: (Sep 30, 2012) | |

correct one goes below for(i=0; i<16; i++) { printf("%d", (num<<i & 1<<15)?1:0); } Lets assume num = 4. Then num<<0 =0000 0000 0000 0100 & (1000 0000 0000 0000 this is 1<<15) = (all 0 so false condion so 0 PRINT 0 printed yet=0 same repeat Then num<<1 =0000 0000 0000 1000 & (1000 0000 0000 0000 this is 1<<15)= (all 0 so false condion so 0 PRINT 00 printed yet=00 Then num<<2 =0000 0000 0000 1000 & (1000 0000 0000 0000 this is 1<<15)= (all 0 so false condion so 0 PRINT 0 printed yet=000 ............... AT 13 LOOP POSITION Then num<<13 =1000 0000 0000 0000 & (1000 0000 0000 0000 this is 1<<15)= (all 1000 0000 0000 0000 so TRUE condion so 1 PRINT 1 printed yet=0000000000001 0000 0000 0000 0100 AT 15 LOOP POSITION Then num<<15 =0000 0000 0000 0010 & (1000 0000 0000 0000 this is 1<<15)= (all 1000 0000 0000 0000 so false condion so 0 PRINT 0 printed yet=0000000000000100 hence finaly we have 000000000000100=4 |

Vishal Singh said: (Jun 13, 2014) | |

Sir I had executed this one and. Answer is, 0100011101111000. Since it is. An conditional operator. Asked to give 0. Or 1 as a output. |

Kannan said: (Jul 19, 2015) | |

Why the program print binary value. What cmd? |

Anu Mishrs said: (Sep 13, 2016) | |

No, this program is not giving output correctly only it give 1 or 0 due to conditional operator. |

Bishal said: (Jan 24, 2018) | |

What is %u in scanf? |

Rvm said: (Apr 5, 2018) | |

%u means? Please explain in detail. |

Radhey said: (Aug 28, 2018) | |

Unsigned means? |

Vartika said: (Oct 7, 2018) | |

I don't understand when I write %u in scanf, how is it behaving like %d? |

Pavan said: (Sep 2, 2020) | |

Unsigned means its a datatype like int but it is type modifier i.e,int has 2 bytes of memory means it stores values from -327768 to 32767 it is specified as %d similarly unsigned also has 2 bytes(size) from 0 to 65535 specifier %u. |

Pavan Anjali said: (Aug 28, 2021) | |

If the int takes only positive values it is unsigned and signed means int takes both positive and negative numbers. As we know %c means char reads, %f means float reads. Similarly %d means signed values read (both + answer -) and %u means unsigned values read-only + values. |

#### Post your comments here:

Name *:

Email : (optional)

» Your comments will be displayed only after manual approval.