|
■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
|