Généralement, les valeurs entières sont signées, sauf si vous avez explicitement besoin d'une valeur non signée. C'est juste la façon dont ils sont utilisés. Je ne suis peut-être pas d'accord avec ce choix, mais c'est comme ça.
Pour le moment, avec les contraintes de mémoire typiques d'aujourd'hui, si votre tableau ou une structure de données similaire nécessite une longueur UInt32, vous devriez envisager d'autres structures de données.
Avec un tableau d'octets, Int32 vous donnera 2 Go de valeurs