Все зависит от того, как вы печатаете значение. Для cout попробуйте cout << (long unsigned int)var;
, а для printf
вы можете попробовать использовать спецификатор формата %lu
. Однако, как упоминалось выше, uint8
, скорее всего, определено или typedef'd как что-то еще, поскольку это не тип ISO C ++. Существует также вероятность того, что uint8
будет typedef'd to unsigned long int
(универсальный) или unsigned __int64
(специфичный для платформы MS), и компилятор MSVC ++ просто делает неправильное неявное преобразование. Не зная, как определяется uint8
, трудно сказать.