Home / C Programming / Expressions :: Discussion

Discussion :: Expressions

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

    #include
      
     int main() 
     {    
        printf("%x\n", -22); 
        return 0;
     } 
    

  2. A.

    ffff

    B.

    0  

    C.

    fff8

    D.

    Error

    View Answer

    Workspace

    Answer : Option C

    Explanation :

    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.


Be The First To Comment