C Programming - Bitwise Operators - Discussion

Discussion Forum : Bitwise Operators - Find Output of Program (Q.No. 2)
2.
If an unsigned int is 2 bytes wide then, What will be the output of the program ?
#include<stdio.h>

int main()
{
    unsigned int m = 32;
    printf("%x\n", ~m);
    return 0;
}
ffff
0000
ffdf
ddfd
Answer: Option
Explanation:
No answer description is available. Let's discuss.
Discussion:
35 comments Page 2 of 4.

Sravanthi said:   1 decade ago
I don't understand the above procedure can anyone lease explain me in brief I mean how to write the values of 32 in binary form?

Shruti said:   1 decade ago
How 32 is 0000 0000 0010 0000 ?

S.Loguprasad said:   1 decade ago
~ act like Not. 32 in binary 0000 0000 0010 0000. Convert to Not So 1111 1111 1101 1111. Answer in hexadecimal ffdf.

Preeti said:   1 decade ago
Binary representation of 32bit - 0000000000100000.

1's - 1111111111011111.

So ffdf answer.

Sangita said:   1 decade ago
The output is ffffffdf. in indiabix.com because its runs on 32 bit linux environment. If we run in turbo it will give ffff.

It varies from platform to platform.

Gaurav bisht said:   1 decade ago
Since unsigned 2 byte m = 32 can be represented as:

0000 0000 0010 0000

To do ~m means just complimenting m i.e.

~m = 1111 1111 1101 1111

In Hexa 1111 = f and 1101 = d

Therefore result is ffdf.

Sravanthi said:   1 decade ago
Assume each digit from right to left as 2 power i.
Where i =0,1,2...

Now 32 is 0000 0000 0010 0000.

Which mean 0*(2 power 0)+0*(2 power 1)+0*(2 power 2)+0*(2 power 3)+0*(2 power 4)+1*(2 power 5)+0*(2 power 6)+..

Raina said:   1 decade ago
HOW TO WRITE .

32 = 0000 0000 0010 0000.

Can anyone explain this?

Naveen said:   1 decade ago
But in the compiler provided by the indiabix.com.

The output is ffffffdf.

Can anyone explain why?

Chelsi said:   1 decade ago
How did you took m=32 as in binary: 0000 0000 0010 0000 please explain me?


Post your comments here:

Your comments will be displayed after verification.