C Programming - Bitwise Operators - Discussion

Discussion Forum : Bitwise Operators - Find Output of Program (Q.No. 11)
11.
What will be the output of the program?
#include<stdio.h>

int main()
{
    unsigned int res;
    res = (64 >>(2+1-2)) & (~(1<<2));
    printf("%d\n", res);
    return 0;
}
32
64
0
128
Answer: Option
Explanation:
No answer description is available. Let's discuss.
Discussion:
24 comments Page 1 of 3.

Datta said:   2 decades ago
(64>>(2+1-2)) & (~(1<<2)) becomes
(64>>1) & (~(1<<2)).
In binary,
(0100 0000>>1) & (~(0000 0001<<2)
(0010 0000) & (~(0000 0100))
0010 0000 & 1111 1011 ( ~ equal to NOT )
0010 0000 = 32 (in decimal)

Naveen said:   1 decade ago
Datta very thanks

Gugan said:   1 decade ago
I think answer is
1000 0000>>1) & (~(0000 0001<<2)
(0100 0000)& (~(0000 0100))
(0100 0000) & (1111 1011) ( ~ equal to NOT )
0100 0000=64(in decimal)

Pgk said:   1 decade ago
thank u very much datta

Madhusudan said:   1 decade ago
Datta is right...

Santhu said:   1 decade ago
Datta is correct.

Gaurav Chaudhary said:   1 decade ago
Thanks for such a nice explanation.

Samyukt said:   1 decade ago
Thanks yaar Datta.

Suresh said:   1 decade ago
Thank you for your explaination.

Swati said:   1 decade ago
What is the function of >> operator? Please explain.


Post your comments here:

Your comments will be displayed after verification.