将C转换为C++(类)程序?

来源:百度知道 编辑:UC知道 时间:2024/05/13 15:19:39
能否将下面的C程序改为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;
}
}
}

/* 打印取到的二进制 */
for (i = 0; i < k; i++)
{
printf("%d ", bin[i]);
}
getch();
}

#include <iostream>
#include <cstdlib>
using namespace std;

class CMI
{
private:
unsigned char cmi[2];
unsigned char bin[256];
int len;
public:
CMI() //初始化
{
cmi[0]= 0x37;
cmi[1]=0x01;
}
void solve();
void print();
};

void CMI::solve()
{
int i, j, k;
char tmp;

/* 处理每个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
{
cout<<"Error cmi format!\n";