将C转换为C++(类)程序?
能否将下面的C程序改为C++的“类”程序?谢谢高手!#include<stdio.h>#include<stdlib.h>#include<conio.h>voidmai...
能否将下面的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 <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();
} 展开
2个回答
展开全部
知道C语言里面的结构体吧,你用C的思维换成结构体来做,把struct关键字换成class就是了。
虽然C++兼容C,但是它们的设计方式是不同,C++纷繁复杂,有很多不同的方法可以采用。
虽然C++兼容C,但是它们的设计方式是不同,C++纷繁复杂,有很多不同的方法可以采用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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";
return ;
}
}
}
len=k;
}
void CMI::print()
{
int i,j;
/* 打印取到的二进制 */
for (i = 0; i < len; i++)
{
cout<<bin[i]<<" ";
}
}
void main()
{
CMI a;
a.solve();
a.print();
}
#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";
return ;
}
}
}
len=k;
}
void CMI::print()
{
int i,j;
/* 打印取到的二进制 */
for (i = 0; i < len; i++)
{
cout<<bin[i]<<" ";
}
}
void main()
{
CMI a;
a.solve();
a.print();
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询