Conversion -1 en Uint ne fonctionnera pas "((UINT) (- 1))" Solution?
num10 = ((uint)(-1)) >> (0x20 - num9);
5 Réponses :
Un entier non signé ne peut représenter que des valeurs positives. Il ne peut pas représenter -1. P>
Si vous souhaitez représenter des valeurs négatives, vous devez utiliser un signé type, comme int code>. p>
Le compilateur vous dit ce que vous devez faire: Cependant, cela peut ne pas vous donner le résultat que vous souhaitez. p> p>
Utilisez
uint num10 = (uint.MaxValue) >> (0x20u - num9);
Vous pouvez en effet avoir quelque chose qui ressemble quelque peu à des chiffres négatifs. Ils ont la fonctionnalité que Pour créer un "négatif" uint uint en C # sans régions non cochées, vous pouvez plutôt utiliser l'équivalent x + (-x) == 0 code> p>
(~ x) + 1 code> qui est identique au
-x code> < / p>
-1 est en dehors de la gamme d'un entier non signé.
Le message d'erreur ne vous dit pas la solution?