Código
Printf("%d",~((unsigned char)~0));
Al compilarlo da -256
Segun la logica que sigo yo y sabiendo que un char tiene 8 bits no entiendo como llega a ese resultado.
Primero al cero le realiza su complemento a1 por lo que queda todos unos,sabiendo que el char tiene ocho bits queda 11111111 que seria el numero 255. Y si luego a todos esos unos se le realiza su complemento a1 quedan todos ceros.