Bitwise Operators - Find Output of Program Multiple Questions and Answers.
Exercise Questions ::
Bitwise Operators
1. | Assuming, integer is 2 byte, What will be the output of the program? |
|
#include<stdio.h>
int main()
{
printf("%x\n", -1>>1);
return 0;
}
|
| A. | ffff |
| B. | 0000 |
| C. | ffdf |
| D. | ddfd |
|
|
Published by:Michael Daani
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;
}
|
| A. | ffff |
| B. | 0000 |
| C. | ffdf |
| D. | ddfd |
|
|
Published by:Michael Daani
3. | Assuming a integer 2-bytes, What will be the output of the program? |
|
#include<stdio.h>
int main()
{
printf("%x\n", -1<<3);
return 0;
}
|
| A. | ffff |
| B. | fff8 |
| C. | 0 |
| D. | -1 |
|
|
| Answer: Option B |
|
|
| Explanation: |
|
The system will treat negative numbers in 2's complement method.
Example:
Assume the size of int is 2-bytes(16 bits). The integer value 1 is represented as given below:
Binary of 1: 00000000 00000001 (this is for positive value of 1)
1's complement of binary 1: 11111111 11111110 2's complement of binary 1: 11111111 11111111
Thy system will store '11111111 11111111' in memory to represent '-1'.
If we do left shift (3 bits) on 11111111 11111111 it will become as given below:
11111111 11111111 ---(left shift 3 times)---> 11111111 11111000.
So, 11111111 11111000 ---(binary to hex)---> FF F8. (Required Answer)
Note:
How is the negative number obtained from 2's complement value?
As stated above, -1 is represented as '11111111 11111111' in memory.
So, the system will take 2's complement of '11111111 11111111' to the get the original negative value back.
Example:
Bit Representation of -1: 11111111 11111111
Since the left most bit is 1, it is a negative number. Then the value is
1's complement: 00000000 00000000 2's complement: 00000000 00000001 (Add 1 to the above result)
Therefore, '00000000 00000001' = 1 and the sign is negative.
Hence the value is -1. |
| See More Information |
|
|
|
Tutorial Link: |
Published by:Michael Daani
4. | If an unsigned int is 2 bytes wide then, What will be the output of the program ? |
|
#include<stdio.h>
int main()
{
unsigned int a=0xffff;
~a;
printf("%x\n", a);
return 0;
}
|
| A. | ffff |
| B. | 0000 |
| C. | 00ff |
| D. | ddfd |
|
|
Published by:Michael Daani
5. | What will be the output of the program? |
|
#include<stdio.h>
int main()
{
unsigned char i = 0x80;
printf("%d\n", i<<1);
return 0;
}
|
| A. | 0 |
| B. | 256 |
| C. | 100 |
| D. | 80 |
|
|
Published by:Michael Daani
»