Byte数组是什么意思?[已关闭]

2022-08-31 09:14:48

有人可以解释一下,我不完全理解这个概念。

什么是字节数组?

我们在应用程序/程序中何时何地使用它?

使用字节数组的优点和缺点是什么?


答案 1

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

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

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

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


答案 2

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

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

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