哪位大虾帮忙改一下,小弟编了一个转换程序,可是错误多。

来源:百度知道 编辑:UC知道 时间:2024/06/09 20:03:26
具体内容是把byte数组转化成string数组,要求就是0x00的变成2位0,0,0x1f,变成1,f。
下面是 代码
#include<iostream>
#include<string>

using namespace std;
typedef unsigned char byte;

void convert(byte a[9],string b[18])
{
int i;
for(i=0;i<9;i++)
{

switch(a[i]|0xf0)
{
case 0xf0: b[2i+1]=0;break;
case 0xf1: b[2i+1]=1;break;
case 0xf2: b[2i+1]=2;break;
case 0xf3: b[2i+1]=3;break;
case 0xf4: b[2i+1]=4;break;
case 0xf5: b[2i+1]=5;break;
case 0xf6: b[2i+1]=6;break;
case 0xf7: b[2i+1]=7;break;
case 0xf8: b[2i+1]=8;break;
case 0xf9: b[2iv1]=9;break;
case 0xfa: b[2i+1]=a;break;
case 0xfb: b[2i+1]=b;break;
case 0xfc: b[2i+1]=c;break;
case 0xfd: b[2i+1]=d;break;
case 0xfe: b[2i+1]=e;break;
case 0xff: b[2i+1]=f;break;
}

switch(a[i])
{

case a[i]|0x0

修改好了,你自己对对吧

#include<iostream>
#include<string>
using namespace std;
typedef unsigned char byte;

void convert(byte a[9],char b[18])
{
int i;
for(i=0;i<9;i++)
{
switch(a[i]|0x0f)
{
case 0x0f: b[2*i]='0';break;
case 0x1f: b[2*i]='1';break;
case 0x2f: b[2*i]='2';break;
case 0x3f: b[2*i]='3';break;
case 0x4f: b[2*i]='4';break;
case 0x5f: b[2*i]='5';break;
case 0x6f: b[2*i]='6';break;
case 0x7f: b[2*i]='7';break;
case 0x8f: b[2*i]='8';break;
case 0x9f: b[2*i]='9';break;
case 0xaf: b[2*i]='a';break;
case 0xbf: b[2*i]='b';break;
case 0xcf: b[2*i]='c';break;
case 0xdf: b[2*i]='d';break;
case 0xef: b[2*i]='e';break;
case 0xff: b[2*i]='f';break;
}
switch(a[i]|0xf0)