2017-09-27 16 views
-4

私はカウンタとして使用している2バイトのバイト配列を持っています。バイト単位でビット単位でインクリメント(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 

これを行う最もクリーンな方法は何ですか?

EDITスーパー愚かな質問のための

申し訳ありませんが、私は間違った方法、それを見ていました。将来誰かが同じ愚かな質問に出くわすべきか:コメントに記載されているように、これを行う簡単な方法はInt16を増やすことです。

+8

試してみてください。後で最もクリーンな方法を心配してください –

+6

Int16を使用してください - これはすでに2バイトの値でインクリメントすることができます。これがうまくいかない場合は、質問を編集して*理由を説明してください。 –

+0

これは古典的な[XYPropblem](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)です。あなたは簡単な仕事のために間違ったツールを使用しているし、それを行うための最善の方法は何かをお尋ねください。さて、最良の方法は、適切なツール(RBが書いたInt16)を使うことです。 –

答えて

1

あなただけのバイト配列に戻し、その後、Int16型のための2つのバイトを変換したいビットを付加し、することができますちょうどあなたの場合、

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バイトの配列にビットを追加したいのですが、これは最速の方法です。

関連する問題