有人能解释一下吗,我不太明白这个概念。
什么是字节数组?
我们何时何地在应用程序中使用它?
使用字节数组的优点和缺点是什么?
一个字节是8位(二进制数据)。
字节数组是一个字节数组(同义反复 FTW!)。
您可以使用字节数组来存储二进制数据的集合,例如,文件的内容。这样做的缺点是必须将整个文件内容加载到内存中。
对于大量的二进制数据,如果您的语言支持流数据类型,那么最好使用它。
来自 维基百科:
在计算机科学中,数组数据 结构或简单数组是一个数据 由一个集合组成的结构 元素(值或变量) , 每个都由一个或多个整数标识 索引,以便存储 每个元素都可以从它的 通过一个简单的数学索引元组 配方奶粉。
所以当你说字节数组时,你指的是一个定义了长度的数组(例如,元素的数量) ,它包含一个字节(8位)大小的元素集合。
在 C # 中,字节数组可能是这样的:
byte[] bytes = { 3, 10, 8, 25 };
上面的示例定义了一个由4个元素组成的数组,其中每个元素的长度可以达到 再见。
I assume you know what a byte is. A byte array is simply an area of memory containing a group of contiguous (side by side) bytes, such that it makes sense to talk about them in order: the first byte, the second byte etc..
正如字节可以编码不同类型和范围的数据(从0到255的数字,从 -128到127的数字,使用 ASCII 的单个字符,例如‘ a’或’%’,CPU 操作码) ,字节数组中的每个字节可能是这些东西中的任何一个,或者产生一些多字节值,例如范围更大的数字(例如从0开始的16位无符号整数)。. 65535)、国际字符集、文本字符串(“ hello”)或部分/全部编译的计算机程序。
字节数组的关键之处在于,它为存储在该部分内存中的每个8位值提供了索引(快速)、精确的原始访问,您可以操作这些字节来控制每一位。糟糕的是,计算机只是把每个条目当作一个独立的8位数——这可能是你的程序正在处理的,或者你可能更喜欢一些强大的数据类型,比如一个字符串,可以跟踪它自己的长度并根据需要增长,或者一个浮点数,可以让你存储说3.14而不考虑位的表示。作为一种数据类型,在长数组的开始附近插入或删除数据是低效的,因为需要对所有后续元素进行洗牌以创建或填补创建/需要的空白。