half of the bits are allocated for negative integers
Это утверждение неверно, один знак выделен знаку для обычных целых чисел.
Однако, вы правы в своем предположении. Если вы уверены, что число положительное, использование unsigned int
позволит вам получить доступ к номеру в диапазоне [0,2 ^ 32), в то время как обычное int только разрешит только [- (2 ^ 31), 2 ^ 31- 1], поскольку вам не нужны отрицательные значения, это оставляет вас с менее положительными числами.