2017-09-27 39 views
-4

我有一個兩字節的字節數組,我用它作爲計數器。我需要一點一點地增加它,如:在字節數組(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寫的)。 –

回答

1

你可以只是轉換爲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字節的數組我認爲這是最快的方式來做到這一點。