Вот ты не понимаешь, что такое знаковый тип, поэтому пишешь неправильно.
10000001b - вот это значение может храниться в переменной как знакового (signed char или просто char (иногда где-то может быть беззнаковым), так и беззнакового (unsigned char) типа. Значение хранится одно и то же, а означает разные величины, в зависимости от типа переменной, в которой хранится.
Но чем отличаются знаковый тип от беззнакового: переменная знакового типа может переполниться и при переполнении может давать неопределённые результаты; а переменная беззнакового типа не может переполниться, там определённо всё лишнее отсекается (поэтому битовые операции проводят на беззнаковых переменных).
Так что число отрицательное не потому, что у него там бит знака равен единице, а потому что тот бит вообще считается битом знака, так как число хранится в переменной знакового типа.