Comment convertir un int en deux octets en C#?Comment convertir un int en deux octets en C#?
Répondre
en admettant que vous voulez juste les octets bas:
byte b0 = (byte)i,
b1 = (byte)(i>>8);
Cependant, étant donné que 'int' est 'Int32' qui laisse 2 octets plus uncaptured.
Ceci est ma solution. Beaucoup doit plus vite que BitConverter. – Joshua
@Joshua, j'ai fait un benchmark rapide (Release version, 50000000 itérations, chronomètre et test complet répété deux fois pour supprimer divers artefacts) et la différence entre la création d'un tableau et l'utilisation du bit-masking vs appel BitConverter est d'environ 1ns par appeler sur ma machine. Si vous supprimez la création de tableau (il suffit d'obtenir les deux octets), la différence est d'environ 14ns. –
Je ne doute pas de vos repères. BitConverter est lent en comparaison car il doit allouer des tableaux. Si je peux pré-détecter ma taille de tableau pour des milliers d'entiers, je peux économiser une quantité de temps non triviale. – Joshua
Vous pouvez utiliser BitConverter.GetBytes pour obtenir les octets comportant un Int32. Il y aura 4 octets dans le résultat, cependant pas 2.
Une autre façon de le faire, mais pas aussi lisse que d'autres méthodes:
Int32 i = 38633;
byte b0 = (byte)(i % 256);
byte b1 = (byte)(i/256);
Est-ce un int16?
Int16 i = 7;
byte[] ba = BitConverter.GetBytes(i);
Il ne comportera que deux octets.
- 1. convertir int en octets
- 2. Comment mettre un int en octets * C#
- 3. OR-octets en C# donne int
- 4. Comment convertir un int ByteStream en chaîne?
- 5. Comment convertir int * en int
- 6. Comment convertir un int [,] en byte [] en C#
- 7. Convertir IntPtr en int * en C#?
- 8. Comment faire pour convertir un adresse int de deux variable en pointeur char en C?
- 9. Comment convertir un int en NSString?
- 10. Convertir int en tableau d'octets en C?
- 11. convertir la chaîne en int en C++
- 12. convertir décimal en int en C#
- 13. Convertir int en chaîne?
- 14. Comment convertir un caractère * en un int?
- 15. comment convertir la valeur d'octet en int dans l'objectif-c
- 16. Convertir int32 en int
- 17. Convertir les octets [] en PDF
- 18. convertir un int en char *
- 19. Objective-C, comment puis-je convertir un double en int?
- 20. Comment convertir un bitmap en int []?
- 21. Comment convertir un entier en int?
- 22. Convertir en deux hex en C#
- 23. Comment convertir int [] en byte []
- 24. En C#, Comment convertir une chaîne hexadécimale en int?
- 25. Comment convertir Scope_Identity() en int?
- 26. Comment convertir l'adresse d'un int en pointeur char en C?
- 27. Après octets shifitng un int à 4 octets, comment puis-je revenir à int (C)
- 28. Ajouter deux IQueryables (int/decimal) en C#
- 29. java convertir int en court
- 30. C# Convertir string en int (avec arrondi)
Quelle partie de l'int? Deux octets ne suffisent pas à encoder une valeur entière de 32 bits. – dtb
'int' nécessite 4 octets pour le stockage. Voulez-vous perdre l'information dans les MSB? –
Qui le * bip * downvoted ceci. Ceci est une question utile et intéressante car le chemin C ne fonctionne soudainement pas pour de bonnes raisons en C# et les API évidentes n'existent pas (BitConverter est lent et * cassé * à bien des égards). – Joshua