9
votes

convertir l'octet entier [] en uint

J'ai des octets [] srno dans mon code xxx

maintenant je veux cette valeur dans uint comme xxx

Comment le convertir ?


4 commentaires

Un uint est de 4 octets, mais vous avez 6 octets là-bas. En tout cas, connaissez-vous la classe bitconverter ?


Faites juste le calcul: srno [0] * 0x10000000000 + srn0 [1] * 0x100000000 ... . Ou peu importe.


@Ani: ok pas de problème me dire pour Ulong? BitConverter Classe Besoin d'index Je ne veux pas d'indice protticulaire Je souhaite convertir une matrice totale


@Kevan: Si vous lisiez la documentation, vous remarqueriez que l'index indique le convertisseur de bits où il devrait Démarrer la conversion.


3 Réponses :


10
votes

Comme @animaonline suggéré, vous devez utiliser bitconverter pour convertir le tableau d'octets sur uint ou * ulong. Ainsi, vous avez 6 octets, uint est trop petit pour vous. Vous devriez convertir à Ulong *. Mais le convertisseur nécessite huit octets, créez donc un nouveau tableau avec le nombre requis d'octets: xxx


0 commentaires

1
votes

dans l'espace de noms système Vous trouverez la classe de bibliothèque bitConverter . Vous voulez la fonction statique touint64 () comme suit: xxx

Vous devrez régler la taille de votre matrice sur [8]

MSDN


1 commentaires

Vous devez d'abord inverser le tableau!



0
votes

Tout le monde semble ignorer l'encodage de l'ordre d'octet de sa production attendue. La classe BitConverter utilise un codage fixe (généralement Little-Endian, IIRC). La sortie dans l'exemple est supposée être Big-Endian. Dans un monde parfait, vous feriez simplement les mathématiques vous-même, mais il est plus simple d'utiliser array.ray.Reververse. / code> puis utilisez la classe CConverter inBuilt .

Il y a probablement Soyez un tas de réponses avant d'arriver à poster ceci donc voici une pièce très rapide du code dangereux: xxx


0 commentaires