CMI编码 转换为 二进制

来源:百度知道 编辑:UC知道 时间:2024/07/03 13:05:37
由CMI编码转换为二进制的C++程序。
作业要求:详细,最好有注释。
可继续加分:)
谢谢各位朋友的帮助!

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

void main()
{
unsigned char cmi[] = { 0x37, 0x01 };
unsigned char bin[256], tmp;
int i, j, k;

/* 处理每个CMI字节 */
k = 0;
for (i = 0; i < sizeof(cmi); i++)
{
/* 分4次处理字节, 每次处理字节中的2个位 */
for (j = 0; j < 4; j++)
{
/* 把CMI中的其中2位取出来 */
tmp = cmi[i];
tmp >>= (3 - j) * 2;
tmp &= 0x03;
/* 把该2位从CMI编码转换为二进制编码, 并存储到数组中 */
if (tmp == 0 || tmp == 3)
{
bin[k++] = 1;
}
else if (tmp == 1)
{
bin[k++] = 0;
}
else
{
printf("Error cmi format!\n");
return;
}
}
}