C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


■96666 / )  Re[3]: バイト配列とShort配列のやり取りに関して
□投稿者/ とっちゃん (707回)-(2021/01/08(Fri) 01:12:12)
No96665 (Yammy さん) に返信

速度面も考慮しつつ、VB で限界までとすると以下のような格好ですかね?
(C# -> VB の変換のほうが時間がかかったのは内緒w)
GetBytes() でやってることとほぼ同じことを直接行ってるだけですけどね。

Dim buf(99999) As Byte

Dim count As Integer = CInt((buf.Length - 100) / 2)

For index As Integer = 0 To count - 1
Dim pos As Integer = 100 + index * 2
Dim value As Short = BitConverter.ToInt16(buf, pos)
value = CShort(value * 0.3)
' .NET Framework 限定
' Dim newData As Byte() = BitConverter.GetBytes(value)
' Array.Copy(newData, 0, buf, pos, newData.Length)
#if BIGENDIAN
buf(pos) = CByte((value Mod 256))
buf(pos+1) = CByte((value / 256))
#else
buf(pos) = CByte((value / 256))
buf(pos + 1) = CByte((value Mod 256))
#endif
Next

返信 編集キー/


管理者用

- Child Tree -