Мне кажется, что надо писать больше текста, чтобы был лучше понятен контекст и цели.
Я имел в виду, что слово "знак" получается многозначным. С одной стороны,
число стало знаковым или беззнаковым, потому что перед ним стоит или не стоит знак "минус". Однако эта знаковость числа выделилась в отдельный смысл и тем самым становится не совсем ясно, о каком смысле слова "знак" мы говорим в программировании.
Попробуем записать это в виде "словарного определения".
Слово "знак" имеет значения:
1) знак математический, для числа обозначает свойство "отрицательности", "негативности"
(позволяет в графической записи отличить "положительные" числа от "отрицательных")
2) знак письменный, что-то вроде Unicode codepoint.
------------------------------------
Теперь мы хотим достичь какой-то цели. Какой? Ввести два слова вместо этого одного, для того чтобы точно различать о чём идёт речь. План действий: a) придумать два слова; б) ввести в оборот.
Придумаем слова, например "отрицатор" и "эз", дадим этим словам определения (в форме словарных определений):
Слово "Отрицатор" имеет значения:
1) "знак отрицания" в математическом смысле, унарный минус;
Слово "Эз" имеет значения:
1) элемент записи, надписи, так же известный как "знак письма", "письменный знак".
Далее будем использовать два придуманных слова, и достигать умопомрачительных результатов. Если всё получится, то слова приживутся.
"Эз" даже более компактен, чем "чар", созвучен с названием первой буквы алфавита "Аз", и ещё он немного смайлик.
------------------------------------
Тип умозрительно позволящий отрицать - "тупо", пример кода:
тупо мой_счётчик = -42;
Перманентно положительное целое - "ппц"
ппц другой_счётчик = +42;