MemoryStream内存数据读写

来源:互联网 发布:java游戏开发教程.pdf 编辑:程序博客网 时间:2024/06/04 18:38

先说内存读写原理.字节转换

电脑中最基本的单位是位bit,但这个单位太小,所以字节Byte是电脑存储容量的基本计量单位。Byte可以简写为B,一个字节由八个二进制位组成,其最小值为0,最大值为11111111,一个存储单元能存储一个字节的内容。

我们做个字节和int类型之间的转换。int a=xxxxx; 我们想要把int转换为byte数组,此时需要用到BitConverter,它是引用using System;

byte[] xx=BitConverter.GetByte(a);我们不妨把这个byte数组打印出来,我们首选for而不是foreach因为foreach更费内存。

我们打印出来会是四组数字,因为int为4个字节

现在反过来,把byte数组转换为int,还是用到BitConverter,用它点ToInt32,参数第一个是byte数组,第二个是数组的起始下标

基本的数据类型和byte数组之间的转换靠一个BitConverter都可以轻松搞定



编写自己的内存读写类,这个类是项目中比较核心的类

这个类中将几乎所有的数据类型和byte数组之间进行从流中读取以及写入流的操作

类型                占字节数                      从流中读取                                写入流

Short                   2                                ToInt16                                      GetBytes

UShort                 2                                ToUInt16                                   GetBytes

Int                       4                                ToInt32                                      GetBytes

UInt                     4                                ToUInt32                                   GetBytes

Long                    8                                ToInt64                                     GetBytes

ULong                  8                                ToUInt64                                   GetBytes

Float                    4                                ToSingle                                    GetBytes

Double                 8                                 ToDouble                                  GetBytes

Bool                                                    base.ReadByte()==1                      base.WriteByte((byte)(value==true?1:0))

String         见附文件,所有类型的转换都有




原创粉丝点击