**Code**

```
char a; 
a = 0xf1;
printf("%x\n", a);

```

**Output**

```
fffffff1

```

`printf()` show 4 bytes, that exactly we have one byte in `a`.

What is the reason of this misbehavior?

How can i correct it?