Per rappresentare i numeri negativi nei calcolatori si usa il complemento a due perché perché permette di eseguire addizioni e sottrazioni senza controllare il segno. (E non il bit del segno come nel tuo esempio)

Ti consiglio di fare un cast ed utilizzare una variabile unsigned char.. se prima era negativo dovrebbe mantenere il complemento a due.. altrimenti devi fare un cast passando per i puntatori..


edit: anzi non dovrebbe neanche servire il cast fin che utilizzi l'and binario