字节(byte)与位(bits)

字节(byte)与位(bits)

基本概念

Bit(位): 是计算机数据的最小单位。它只有两种取值,0或1。

Byte(字节): 是计算机存储数据的基本单位。1字节 = 8位。

在数据通信和存储中,数据的大小通常用字节来表示,而在描述数据的详细结构(例如协议头)时,通常使用位。

字节与位的关系

1 字节 = 8 位 (1 Byte = 8 Bits)

示例解释

假设我们有一个ADTS帧头,它由7字节(7 Bytes)组成,且这7字节总共包含56位(7 * 8 = 56 Bits)。

具体到ADTS头部的位与字节的关系

固定头 (adts_fixed_header) 详细解析

在前面的内容中,我们提到了固定头包含了28位(28 Bits)的数据。以下是这些位的具体分配及其对应的字节:

syncword (12 bits): 这12位用来标识ADTS帧的开始。

前8位(第1个字节): 1111 1111 (0xFF)

后4位(第2个字节的前4位): 1111

ID (1 bit): MPEG版本标识。

位于第2个字节的第5位。

layer (2 bits): 总是设置为00。

位于第2个字节的第6和第7位。

protection_absent (1 bit): 标识是否有CRC校验。

位于第2个字节的第8位。

profile (2 bits): 标识AAC的级别。

位于第3个字节的前2位。

sampling_frequency_index (4 bits): 采样率索引。

位于第3个字节的第3到第6位。

private_bit (1 bit): 私有位。

位于第3个字节的第7位。

channel_configuration (3 bits): 声道配置。

位于第3个字节的第8位和第4个字节的前2位。

original_copy (1 bit): 标识原始音频或副本。

位于第4个字节的第3位。

home (1 bit): 标识音频是否在家使用。

位于第4个字节的第4位。

可变头 (adts_variable_header) 详细解析

可变头也包含了28位(28 Bits)的数据。以下是这些位的具体分配及其对应的字节:

copyright_identification_bit (1 bit): 版权标识位。

位于第4个字节的第5位。

copyright_identification_start (1 bit): 版权标识开始。

位于第4个字节的第6位。

aac_frame_length (13 bits): ADTS帧长度。

位于第4个字节的第7、8位和第5个、第6个字节。

adts_buffer_fullness (11 bits): ADTS缓冲区满度。

位于第6个字节和第7个字节。

number_of_raw_data_blocks_in_frame (2 bits): 每帧中包含的AAC原始数据块的数量。

位于第7个字节的后2位。

总结

通过这种位和字节的映射关系,可以确保ADTS头部的各项信息能够被准确地解析。理解位与字节之间的关系是分析和处理二进制数据结构的基础,对于处理诸如ADTS这样复杂的二进制格式尤其重要。

相关推荐

小米怎么关闭查找手机
office365打不开doc文件

小米怎么关闭查找手机

📅 07-03 👁️ 2987
饥荒伍迪攻略大全:解锁方法、技能及玩法技巧详解
365提前结束投注

饥荒伍迪攻略大全:解锁方法、技能及玩法技巧详解

📅 07-17 👁️ 3192
刷BIOS教程(一步步教您如何正确刷写BIOS固件,提升计算机性能和稳定性)