您的位置:程序门 -> c/c++ -> c++ 语言



求救怎样把unsigned char里的16位转换为string?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


求救怎样把unsigned char里的16位转换为string?
发表于:2007-03-16 19:37:15 楼主
求救怎样把unsigned   char里的16位转换为string

比如说:unsigned   char   ch=205,那么16进制就是   ch=0xcd
定义一个string   str
求救,怎样才能把ch的16进制存进str里,就是str的内容是 "cd ".
发表于:2007-03-16 20:10:431楼 得分:0
#include   <iostream>
#include   <string>
using   namespace   std;

int   main()
{
char   c[10]={0};
unsigned   char   ch=205;
itoa(ch,c,16);
string   str(c);
cout < <str < <endl;
system( "pause ");
return   0;
}
发表于:2007-03-16 20:55:042楼 得分:0
但是这样的话   ,假如     unsigned   char   ch=1,即ch=0x01
用itoa转换的的话c[0]=1,c[1=]0,怎样侧改成c[0]=0,c[1]=1
发表于:2007-03-16 21:41:063楼 得分:0
如果要转化的字符数量大的话,做一个映射表   ,效率会比较高一点,
发表于:2007-03-16 23:18:444楼 得分:0
void   main()
{
unsigned   char   a   =   0x05;
char   temp[2];
sprintf(temp,   "%x ",   a);
printf( "%s\n ",   temp);
};
发表于:2007-03-17 22:16:075楼 得分:0
sprintf功能很恰当啊
发表于:2007-03-17 23:01:376楼 得分:0
#include   <iostream>
#include   <string>
using   namespace   std;

int   main()
{
char   c[10]={0};
unsigned   char   ch=205;
sprintf(c,   "%x ",   ch);     //构造字符串
string   str(c);     //根据字符串生成   string
cout < <str < <endl;   //ok
system( "pause ");  
return   0;
}
发表于:2007-03-17 23:12:567楼 得分:0
void   str2hex(const   char*   str,char*   strhex)
{
        int   i;
        static   const   strhextable[]= "0123456789abcdef ";
        if(!str   ¦ ¦   !strhex)   return;
        for(i=0;str[i];i++)
        {
              strhex[i < <1]=strhextable[str[i]> > 4];
              strhex[(i < <1)+1]=strhextable[str[i]&0xf];
        }
        strhex[i < <1]   =   0;
}


快速检索

最新资讯
热门点击