Firstly,I tried ***sizeof***(signed short), the output was 2 bytes.

**BUT**
When I tried to check by the hex representation of the signed short, it turns out to be 4 bytes :

```
#include <stdio.h>
 void main(){
 signed short  test  ;
 test=-17; /* any number */
 printf(" -17 when viewed as signed short Hexa is \t %x\n ", test);
 }`

```

The output : 

```
-17 when viewed as signed short Hexa is      ffffffef

```

ffffffef means 32 bits not 16 bits !