Это потому, что вы кодируете его с помощью ASCII, который является 7-битным, он обрезает 8-й бит и устанавливает его в 0.
Почему ты так делаешь? Я пытаюсь понять, что ты там делаешь.
Почему вы не просто пишете полученный байтовый массив вместо его кодирования?
Другими словами, почему вы не используете этот код?
//This is preparing the counter as binary
int nCounterIn = ...;
int nCounterTotalInNetwork = System.Net.IPAddress.HostToNetworkOrder(nCounterIn);
byte[] byteFormat = BitConverter.GetBytes(nCounterTotalInNetwork);
m_brWriter.Write(byteFormat);
m_brWriter.Flush();