请问,有人能解释一下吗?我不太理解这个概念。
什么是字节数组?
在应用程序/程序中何时何地我们会使用它?
使用字节数组的优缺点是什么?
请问,有人能解释一下吗?我不太理解这个概念。
什么是字节数组?
在应用程序/程序中何时何地我们会使用它?
使用字节数组的优缺点是什么?
字节是8位二进制数据。
字节数组是一组字节(tautology FTW!)。
您可以使用字节数组来存储二进制数据的集合,例如文件内容。但这样做的缺点是必须将整个文件内容加载到内存中。
对于大量的二进制数据,最好使用流式数据类型(如果您的语言支持)。
我假设您知道字节是什么。一组字节数组就是一块连续的内存区域,其中包含一串连续的字节,这使得可以按顺序讨论它们:第一个字节、第二个字节等等。
就像字节可以编码不同类型和范围的数据(从 0 到 255 的数字、从 -128 到 127 的数字、使用 ASCII 编码的单个字符例如 'a' 或 '%'、CPU 操作码)一样,字节数组中的每个字节可以是其中任何一种,或者对于一些具有更大范围的数字(例如从 0 到 65535 的 16 位无符号整数)、国际字符集、文本字符串 ("hello") 或已编译计算机程序的部分/全部贡献到一些多字节值。
字节数组的关键在于它提供了对存储在那部分内存中的每个 8 位值的索引(快速)、精确和原始的访问,并且您可以操作这些字节以控制每个单独的比特。不好的一点是,计算机只将每个条目视为独立的 8 位数字-这可能是您的程序正在处理的内容,或者您可能更喜欢一些强大的数据类型,例如跟踪其自身长度并根据需要增长的字符串,或者浮点数让您存储像 3.14 这样的数字而不必考虑比特表示。作为一种数据类型,在长数组的开头附近插入或删除数据是低效的,因为所有后续元素都需要被移动以创建/填充所创建/所需的间隙。