MIDI中的变长记录法

 MTrk块类型是存放实际歌曲数据的地方。它是MIDI事件(和非MIDI事件)的序列。在MTrk块的有些数字是以叫可变长的数量的形式进行存储的。 这些数字首先每个字节用7位,最高位不是有效位。 除最后一位之外的所有字节,最高位设为1;最后一个字节最高位设为0。 如果数字在0和127之间,它能正确地表示为一个字节。 这作为可变长的数量代表的数字的。

    对于一个较大的数  我们通常转化为16进制数  (两个16进制符占一个字节(8位) )对于每个字节的数我们依次处理    一个字节的十六进制数00-7f表示不了的  我们将它转化为二进制数  并且补齐成7的整数倍位数   刚好7位就不用补了 (  然后拆每七个拆分) 最高位补上一个标记   最后一个字节的最高位用0标记 前面的都是用1标记  原理就是利用最高位(一个二进制位)不表示数据内容而将实际表示的两位十六进制数限制在0-127  以这种方式记录整数的字节称为动态字节。

你可能感兴趣的:(MIDI中的变长记录法)