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;
}
Discussion:
35 comments Page 1 of 4.
Mallesh said:
3 months ago
#include<stdio.h>
int main()
{
unsigned int m = 32;
printf("%x\n", ~m);
return 0;
}
Ans:-
1's complement: Inverting the bits ( all 1s to 0s and all 0s to 1s).
Binary of 32(2 byte) : 0000 0000 0010 0000.
Representing -32: Make it 1's complement then,
1s complement of 32(2byte) : 1111 1111 1101 1111.
This is the result: ffdf
int main()
{
unsigned int m = 32;
printf("%x\n", ~m);
return 0;
}
Ans:-
1's complement: Inverting the bits ( all 1s to 0s and all 0s to 1s).
Binary of 32(2 byte) : 0000 0000 0010 0000.
Representing -32: Make it 1's complement then,
1s complement of 32(2byte) : 1111 1111 1101 1111.
This is the result: ffdf
Meghana k said:
2 years ago
Thank you it was helpful.
Nikhil tekade said:
3 years ago
Negative numbers are treated with 2's complement method.
1's complement: Inverting the bits ( all 1s to 0s and all 0s to 1s).
2's complement: Adding 1 to the result of 1's complement.
Binary of 32(2byte) : 0000 0000 0010 0000.
Representing -32:
1s complement of 32(2byte) : 1111 1111 1101 1111.
Adding 1 to 1's comp. result : 1111 1111 1110 0000.
Hexadecimal: f f df.
1's complement: Inverting the bits ( all 1s to 0s and all 0s to 1s).
2's complement: Adding 1 to the result of 1's complement.
Binary of 32(2byte) : 0000 0000 0010 0000.
Representing -32:
1s complement of 32(2byte) : 1111 1111 1101 1111.
Adding 1 to 1's comp. result : 1111 1111 1110 0000.
Hexadecimal: f f df.
(5)
Zakar said:
7 years ago
32 complement = 1111 1111 1101 1111.
In hexadecimal f f d f.
In hexadecimal f f d f.
(3)
Jishan said:
8 years ago
Negative numbers are treated with 2's complement method.
1's complement: Inverting the bits ( all 1s to 0s and all 0s to 1s).
2's complement: Adding 1 to the result of 1's complement.
Binary of 32(2byte) : 0000 0000 0010 0000.
Representing -32:
1s complement of 32(2byte) : 1111 1111 1101 1111.
Adding 1 to 1's comp. result : 1111 1111 1110 0000.
Hexadecimal : f f e 0.
This is not given in the option, checked on Ubuntu machine.
1's complement: Inverting the bits ( all 1s to 0s and all 0s to 1s).
2's complement: Adding 1 to the result of 1's complement.
Binary of 32(2byte) : 0000 0000 0010 0000.
Representing -32:
1s complement of 32(2byte) : 1111 1111 1101 1111.
Adding 1 to 1's comp. result : 1111 1111 1110 0000.
Hexadecimal : f f e 0.
This is not given in the option, checked on Ubuntu machine.
(3)
Selvameenal C said:
8 years ago
Yes, there is m=32=0000 0000 0010 0000;
~m(1s complement)= 1111 1111 1101 1111;
Thus answer : ffdf.
~m(1s complement)= 1111 1111 1101 1111;
Thus answer : ffdf.
(3)
Anirudh sharma said:
9 years ago
~ 32 = (32 + 1) *-1.
- 33
33 = 0000 0000 0010 0001.
2complemnt is:
1111 1111 1101 1111
f f d f
So the answer is f f d f.
- 33
33 = 0000 0000 0010 0001.
2complemnt is:
1111 1111 1101 1111
f f d f
So the answer is f f d f.
(7)
Shreya said:
10 years ago
32 = 2^5 = 2*2*2*2*2. So here 2^5 bit is 1 = 0000 0000 0010 0000.
But what they have asked is ~m so = 1111 1111 1101 1111.
But what they have asked is ~m so = 1111 1111 1101 1111.
Vinod said:
1 decade ago
"%x" represents hexadecimal. How to print a number in binary form?
(1)
Mounika kursing said:
1 decade ago
32 16 8 4 2 1
2^5 2^4 2^3 2^2 2^1 2^0
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1
f f d f
We want 32, So keep 1 at 32 all other 0.
For negation replace 0's with 1's.
2^5 2^4 2^3 2^2 2^1 2^0
0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1
f f d f
We want 32, So keep 1 at 32 all other 0.
For negation replace 0's with 1's.
Post your comments here:
Quick links
Quantitative Aptitude
Verbal (English)
Reasoning
Programming
Interview
Placement Papers