C# 中将数值型数据转换为字节数组的方法
C# 中将数值型数据转换为字节数组的方法
发布时间:2016-12-28 来源:查字典编辑
摘要:复制代码代码如下:privatevoidValue_ByteArray(){doubledoublevalue=258.0;Int32int...

复制代码 代码如下:

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 0 32 112 64 字节数组

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

通过上面的例子,可以看出由数值型转换为字节数组后,程序是倒序读入的,但是读取的时候,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]

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新C#教程学习
热门C#教程学习
编程开发子分类