uint32 - это целое число без знака с 32-разрядным значением, которое означает, что вы можете представить 2 ^ 32 числа (0-4294967295).
однако для представления отрицательных чисел один бит из 32 бит зарезервирован для указания положительного или отрицательного числа. это оставляет вам 2 ^ 31 возможных чисел в отрицательном, а также в положительном. результирующий диапазон составляет от -2147483648 до 2147483647 (положительный диапазон включает значение 0, следовательно, только 2147483647). это представление называется int32.
вы должны выбрать unsigned для чисел, которые не могут быть отрицательными по определению, поскольку он предлагает вам более широкий диапазон, но вы должны иметь в виду, что преобразование из и в int32 невозможно, так как int32 не может содержать диапазон uint32 и наоборот.