C Programming - Bitwise Operators - Discussion
Discussion Forum : Bitwise Operators - Point Out Correct Statements (Q.No. 4)
4.
Which of the following statements are correct about the program?
#include<stdio.h>
int main()
{
unsigned int m[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};
unsigned char n, i;
scanf("%d", &n);
for(i=0; i<=7; i++)
{
if(n & m[i])
printf("yes");
}
return 0;
}
Discussion:
13 comments Page 2 of 2.
Nitesh said:
1 decade ago
ox01= 0*16^1+1*16^0=1
Now( num & ox01 (i.e.1))==will check whthr LSB is set or not
Similarly
ox02 ,ox04,ox08 will check 2ndbit,3rd bit and 4th bit
and then ox10=1*16^1+0*16^0=16
i.e 10000 hence it will check for 5th bit and so on...
like ox80= 8*16^1+0*16^0=128
i.e 1000 0000 it will check for 8th bit..
So code will check set bit upto 8 bit...
Now( num & ox01 (i.e.1))==will check whthr LSB is set or not
Similarly
ox02 ,ox04,ox08 will check 2ndbit,3rd bit and 4th bit
and then ox10=1*16^1+0*16^0=16
i.e 10000 hence it will check for 5th bit and so on...
like ox80= 8*16^1+0*16^0=128
i.e 1000 0000 it will check for 8th bit..
So code will check set bit upto 8 bit...
Subash said:
1 decade ago
I think & operator is for both off and (on or off).
Neha said:
1 decade ago
Can anybody explain.
Post your comments here:
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers