
byte配列の途中から2個ずつintに移すには?
byte配列の途中から2個ずつintに移すには?
Byte[] recvData={02:03:04:05:06:01:00:02:00:FF:FF:05}
int nCount; =3;//データn個ください。
List<int> ValueList = new List<int>();//格納用
for (int i = 0; i < nCount; i++)
{
//[0]~[4]までヘッダ+サブヘッダ。データは[5]から2byteずつ
ValueList.Add(recvData[5 + i * 2] | (recvData[6 + i * 2] << 3));
};
という感じで、溜まったbyte配列の受信データから
0001、0002、65535とデータ部分を2byteずつ取り出したいのですが
もうちょっとC#なら簡潔な書き方ってあるのでしょうか?
投稿日時 - 2010-09-07 22:50:37
このQ&Aは役に立ちましたか?
2人が「このQ&Aが役に立った」と投票しています
回答(2)
ビルドするときはunsafeオプションをつけて
byte[] test = { 2, 3, 4, 5,6, 1, 0, 2, 0, 255, 255, 5 };
int x;
unsafe
{
for(int i=0;i<3;i++){
int* xp=&x;
byte* p = (byte*)xp;
*p = test[5 + i * 2];
++p;
*p = test[5 + i * 2+1];
Console.WriteLine("{0}", x);
}
}
Console.ReadLine();
参考URL:http://msdn.microsoft.com/ja-jp/library/ct597kb0%28VS.80%29.aspx
投稿日時 - 2010-09-08 00:16:52