在字节数组(C#)中逐位递增

问题描述:

我有一个两字节的字节数组,我用它作为计数器。我需要一点一点地增加它,如:在字节数组(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 

这样做的最干净的方法是什么?

编辑

对不起,超级愚蠢的问题,我一直在寻找了错误的方式。任何人都会在未来遇到同样愚蠢的问题:正如评论中提到的那样,更简单的方法是增加一个Int16。

+8

请显示您尝试的方式。以后应该关注最干净的方式 –

+6

使用Int16 - 已经是一个2字节值,可以递增...如果这不适用于您,请*编辑您的问题*以解释为什么... –

+0

这是一个经典的[XYPropblem](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。你正在使用错误的工具做一件简单的工作,并问我们最好的办法是什么。那么,最好的方法是使用正确的工具(Int16作为RB写的)。 –

你可以只是转换为Int16的两个字节,你想要的比特追加,然后回一个字节数组:

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) 

我不知道你的要求到底是什么,如果你只是想要追加一个2字节的数组我认为这是最快的方式来做到这一点。