SoFunction
Updated on 2025-03-02

Methods for converting numerical data into byte arrays in C#

Copy the codeThe code is as follows:

private void Value_ByteArray()

{
double doublevalue = 258.0;
Int32 intvalue = 258;
string strValue = "258";
Int16 int16value = 258;
MemoryStream doublemem = new MemoryStream();
BinaryWriter doublebyteWR = new BinaryWriter(doublemem);
(doublevalue);
//();
BinaryReader doubleReader = new BinaryReader(doublemem);
(0, );
double heh = ();//heh is indeed 257.0
MemoryStream intmem = new MemoryStream();
BinaryWriter intbyteWR = new BinaryWriter(intmem);
(intvalue);
MemoryStream strmem = new MemoryStream();
BinaryWriter strbyteWR = new BinaryWriter(strmem);
(strValue);
MemoryStream int16mem = new MemoryStream();
BinaryWriter int16byteWR = new BinaryWriter(int16mem);
(int16value);
byte[] bufferdouble = ();
byte[] bufferint = ();
byte[] bufferint16 = ();
byte[] bufferstr = ();

}

Program results:

double =258.0;8-bit——0 0 0 0 0 0 32 112 64 byte array
Int32 = 258 ; 4——2 1 0 0
string ="258" ; 4——3 50 53 55
Int16 = 258 ; 2——2 1
Int16[] ={0,258,1} ;0 0 2 1 1 0
Through the above example, it can be seen that after converting from a numerical type to a byte array, the program reads in reverse order, but when reading, VS will automatically reverse it.

Copy the codeThe code is as follows:

Int16[] int16Array =new Int16[3]{0,258,1} ;
MemoryStream int16mem = new MemoryStream();
BinaryWriter int16byteWR = new BinaryWriter(int16mem);
foreach (Int16 hehe in int16Array)
{
     (hehe);
}
byte[] bufferint16 = ();//0 0 2 1 1 0
BinaryReader int16Reader = new BinaryReader(int16mem);
(0, );
Int16[] int16Arraynew=new Int16[3];
for (int i = 0; i < /2; i ++)
{
int16Arraynew[i] = int16Reader.ReadInt16();//[0,258,1]
}