在字节数组(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。
答
你可以只是转换为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字节的数组我认为这是最快的方式来做到这一点。
请显示您尝试的方式。以后应该关注最干净的方式 –
使用Int16 - 已经是一个2字节值,可以递增...如果这不适用于您,请*编辑您的问题*以解释为什么... –
这是一个经典的[XYPropblem](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。你正在使用错误的工具做一件简单的工作,并问我们最好的办法是什么。那么,最好的方法是使用正确的工具(Int16作为RB写的)。 –