В книге я читал это говорит, что:Подписано представление типа в C++
Стандарт не определяет, как представлены подписанные типы, но указать, что диапазон должен быть равномерно распределен между положительными и отрицательными значениями. Следовательно, 8-разрядный подписанный символ гарантированно сможет хранить значения от -127 до 127; большинство современных машин используют представление, которые позволяют значение от -128 до 127.
Я полагаю, что [-128; 127] диапазон возникает от метода, называемого «двойки-дополнением», в котором отрицательное число A + 1 (например! 0111 равно 7, а затем 1001 -7). Но я не могу окутать голову, почему в некоторых старых (?) Машинах значения варьируются [-127; 127]. Может ли кто-нибудь прояснить это?
[Ones 'дополнение] (https://en.wikipedia.org/wiki/Ones'_complement), очевидно. С -0 и +0. –
@MrLister спасибо. –
И не забудьте немного более интуитивно понятное представление [sign-magn] (https://en.wikipedia.org/wiki/Signed_number_representations#Signed_magnitude_representation), где один из битов используется только для знака. Я не уверен, что какое-либо оборудование на самом деле было использовано _used_. –