Правильно, что, приведя его к int, вы получите -1, потому что char
в вашей реализации является типом со знаком (на самом деле он определяется реализацией, если char
является подписанным или без знака, и обычно вы можете изменить его в параметры компилятора); в окне отладчика вы видите его беззнаковое представление.
Чтобы получить его беззнаковое значение, вы должны сначала привести его к unsigned char
, а затем к unsigned int
(я думаю, что вы могли бы просто уйти, просто приведя к unsigned int
, но я не уверен).
--- EDIT ---
На самом деле в окне отладчика я вижу его тип как unsigned char
, поэтому первая часть моего ответа может не применяться ... вы должны сказать нам, как определяется этот буфер.