Byte数组是什么意思?

时间:2010-10-26 00:22:56

标签: java computer-science bytearray

有人可以解释一下,我并不完全明白

什么是字节数组
我们何时何地在应用程序/程序中使用它 使用字节数组的优点和缺点是什么

3 个答案:

答案 0 :(得分:62)

一个字节是8位(二进制数据)。

字节数组是一个字节数组(重言式FTW!)。

您可以使用字节数组来存储二进制数据的集合,例如,文件的内容。这样做的缺点是必须将整个文件内容加载到内存中。

对于大量二进制数据,如果您的语言支持,最好使用流数据类型。

答案 1 :(得分:44)

我假设您知道字节是什么。字节数组只是一个包含一组连续(并排)字节的内存区域,因此按顺序讨论它们是有意义的:第一个字节,第二个字节等。

正如字节可以编码不同类型和数据范围(数字从0到255,数字从-128到127,单个字符使用ASCII,例如'a'或'%',CPU操作码),每个字节一个字节数组可能是这些东西中的任何一个,或者有助于某些多字节值,例如范围较大的数字(例如,0..65535中的16位无符号整数),国际字符集,文本字符串(“hello”),或部分/全部已编译的计算机程序。

字节数组的关键在于它为存储在该部分内存中的每个8位值提供索引(快速),精确的原始访问,并且您可以对这些字节进行操作以控制每个位。坏处是计算机只将每个条目视为一个独立的8位数 - 这可能是你的程序正在处理的,或者你可能更喜欢一些强大的数据类型,如跟踪自己的长度和增长的字符串根据需要,或者一个浮点数,让你存储说3.14而不考虑按位表示。作为数据类型,在长数组的开头附近插入或移除数据是低效的,因为需要对所有后续元素进行混洗以填充或填充创建/需要的间隙。

答案 2 :(得分:8)

来自wikipedia

  

在计算机科学中,是一种数组数据   结构或简单的数组就是一个数据   由一个集合组成的结构   元素(值或变量),   每个由一个或多个整数标识   索引,存储使地址   每个元素都可以从它计算出来   通过简单的数学索引元组   式。

因此,当你说字节数组时,你指的是一个包含一组字节(8位)大小元素的定义长度(例如元素数)的数组。

在C#中,字节数组可能如下所示:

byte[] bytes = { 3, 10, 8, 25 };

上面的示例定义了一个包含4个元素的数组,其中每个元素的长度最多为Byte