Как разбить short int (от 0 до 65535) на два числа char (от нуля до 255)?
Битовые операции. Как-то так:short int x = 0x6543;
char a = x & 0xff;
char b = (x & 0xff00) >> 8;
Можно через union:typedef union {
 short int x;
 char c[2];
} si_u;
...
si_u var;
var.x = 0x6543;
printf("char0 = %c\tchar1 = %c\n", "var.c[0], var.c[1]);