Sail E0 Webinar
Question


Assuming, integer is 2 byte, What will be the output of the program?


#include<stdio.h>
int main()
{
printf("%x\n", -2
Options:
A .  ffff
B .  0
C .  fff8
D .  Error
Answer: Option C

The integer value 2 is represented as 00000000 00000010 in binary system. 
Negative numbers are represented in 2's complement method. 
1's complement of 00000000 00000010 is 11111111 11111101 (Change all 0s to 1 and 1s to 0). 
2's complement of 00000000 00000010 is 11111111 11111110 (Add 1 to 1's complement to obtain the 2's complement value). 
Therefore, in binary we represent -2 as: 11111111 11111110. 
After left shifting it by 2 bits we obtain: 11111111 11111000, and it is equal to "fff8" in hexadecimal system.



Was this answer helpful ?
Next Question

Submit Solution

Your email address will not be published. Required fields are marked *

Latest Videos

Latest Test Papers