Je sais que je peux utiliser bitconverter.GetBytes pour obtenir les octets d'un nombre entier. Cependant, j'ai besoin d'un tableau où le contenu peut être comparé pour l'ordre de tri.Le moyen le plus rapide d'obtenir un tableau d'octets d'ordre de tri à partir de l'entier signé
par exemple.
var plusOne = BitConverter.GetBytes(1);
yields bytes: 0,0,0,1
var plusOne = BitConverter.GetBytes(2);
yields bytes: 0,0,0,2
So far so good:
mais:
var minusOne = BitConverter.GetBytes(-1);
yields bytes: 255,255,255,255
Rien d'étrange ici. Mais la comparaison du tableau d'octets MinusOne avec le bytearray de plusOne dirait que le tableau d'octets MinusOne est supérieure à la plusOne (255> 0)
Est-il possible de fantaisie de changer, XOR etc, de sorte que Int.Min donnerait 0,0,0,0 et int.Max donneraient 255,255,255,255?
Désolé pour la confusion :)
je suis venu avec cette solution'unchecked ((uint) (int.MinValue^(1 << 31))) n'a pas besoin de tomber dans un plus gros type de données là-bas .. –