2017-09-27 4 views
-4

J'ai un tableau d'octets de deux octets, que j'utilise comme compteur. Je dois incrémenter peu à peu, comme dans:Incrémentation bit par bit dans un tableau d'octets (C#)

0000 0000 0000 0000 
0000 0000 0000 0001 
0000 0000 0000 0010 
0000 0000 0000 0011 
. 
. 
. 
0000 0000 1111 1111 
0000 0001 1111 1111 
0000 0010 1111 1111 
0000 0011 1111 1111 

Quelle est la manière la plus propre de le faire?

EDIT

Désolé pour la question stupide super, je regardais la mauvaise façon. Si quelqu'un venait à rencontrer la même question stupide à l'avenir: comme mentionné dans les commentaires, le moyen le plus simple de le faire est d'incrémenter un Int16.

+8

Veuillez montrer comment vous avez essayé. Plus tard s'inquiéter de la manière la plus propre –

+6

Utilisez un Int16 - qui est déjà une valeur de 2 octets qui peut être incrémentée ... Si cela ne fonctionne pas pour vous, s'il vous plaît * éditez votre question * pour expliquer pourquoi ... –

+0

Ceci est un classique [XYPropblem] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). Vous utilisez le mauvais outil pour un travail simple et demandez-nous quelle est la meilleure façon de le faire. Eh bien, le meilleur moyen est d'utiliser le bon outil (Int16 comme RB a écrit). –

Répondre

1

Vous pouvez simplement convertir les deux octets pour Int16, ajoutez les bits que vous voulez, puis revenir à un tableau d'octets:

byte[] byteArray = new byte[2] { 10, 20 }; // your byte array 
Int16 yourNumber = BitConverter(byteArray, 0); // converts your byte array to int16 
yourNumber ++; // appends 1 bit 
byte[] getBytes = BitConverter.GetBytes(yourNumber); // converts the int16 to byte array (I think you should be using Int16, unless you really need to use a byte array) 

Je ne suis pas sûr de ce que vous avez tout à fait la demande, si vous venez Je veux ajouter un peu à un tableau de 2 octets, je pense que c'est le moyen le plus rapide de le faire.