Мой вопрос касается параграфа в книге Страуструпа, язык программирования C ++, 4-е издание.Он приводит пример наличия
char c = 255; // 255 is ‘‘all ones,’ ’ hexadecimal 0xFF
int i = c;
и объяснение того, как он будет конвертирован на машинах, где char либо подписан, либо не подписан.
Какое значение будет иметь значение i?К сожалению, ответ не определен.В реализации с 8-битными байтами ответ зависит от значения шаблона «все единицы», когда он разбит на int.На машине, где символ не подписан, ответ - 255. На машине, где символ подписан, - -1.
Мой вопрос: почему он будет равен -1, не так?t это зависит от того, какое представление двоичных чисел используется на машине?Разве это не было бы 0 (-0), если он использует дополнение до 1, и -1, если дополнение до двух?