C# 수치형 데이터를 바이트 배열로 변환하는 방법

2039 단어
 
  
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);
doublebyteWR.Write(doublevalue);
//doublemem.Close();
BinaryReader doubleReader = new BinaryReader(doublemem);
doublemem.Seek(0, SeekOrigin.Begin);
double heh = doubleReader.ReadDouble();//heh 257.0
MemoryStream intmem = new MemoryStream();
BinaryWriter intbyteWR = new BinaryWriter(intmem);
intbyteWR.Write(intvalue);
MemoryStream strmem = new MemoryStream();
BinaryWriter strbyteWR = new BinaryWriter(strmem);
strbyteWR.Write(strValue);
MemoryStream int16mem = new MemoryStream();
BinaryWriter int16byteWR = new BinaryWriter(int16mem);
int16byteWR.Write(int16value);
byte[] bufferdouble = doublemem.ToArray();
byte[] bufferint = intmem.ToArray();
byte[] bufferint16 = int16mem.ToArray();
byte[] bufferstr = strmem.ToArray();

}


프로그램 결과:
double =258.0 ;8비트―0 0 0 0 32 11264 바이트 배열 Int32 = 258;4――2 1 0 0string ="258"; 4――3 50 53 55Int16 = 258 ; 2――2 1Int16[] ={0,258,1} ;0 0 0 2 1 10 위의 예를 통해 알 수 있듯이 수치형에서 바이트 수조로 변환된 후 프로그램은 역순으로 읽히지만 읽을 때 VS가 자동으로 반전된다
 
  
Int16[] int16Array =new Int16[3]{0,258,1} ;
MemoryStream int16mem = new MemoryStream();
BinaryWriter int16byteWR = new BinaryWriter(int16mem);
foreach (Int16 hehe in int16Array)
{
     int16byteWR.Write(hehe);
}
byte[] bufferint16 = int16mem.ToArray();//0 0 2 1 1 0
BinaryReader int16Reader = new BinaryReader(int16mem);
int16mem.Seek(0, SeekOrigin.Begin);
Int16[] int16Arraynew=new Int16[3];
for (int i = 0; i < int16mem.Length/2; i ++)
{
int16Arraynew[i] = int16Reader.ReadInt16();//[0,258,1]
}

좋은 웹페이지 즐겨찾기