比如:
“中”这个字符对应的ascii码是-10544
“国”这个字符对应的ascii码是-17926
问题:
现在已知ascii码是-14133,如何才能得到它对应中文字符是“人”字?
注意我这里的-14133是通过asp里面的asc函数得到的。
先说声谢谢!

解决方案 »

  1.   

    这个不知道有用米~_~
    /* CString str="人"; 
    WORD i ; 
    CString s; 
    i=((BYTE)str[0] << 8)+(BYTE)str[1];
    s.Format("%d",i);
    AfxMessageBox(s);
    */
    输出:51403
    /*
    DWORD i = 51403;
    CString str;
    str.Format("%c%c", (BYTE)(i >> 8),(BYTE)(i & 0xFF));

    AfxMessageBox(str); 
    */
    输出:人
      

  2.   

    eastred(~Vampire~) 兄弟
    我只是举个例子而已,可我事先并不知道-14133对应的就是一个“人”字,
    你那是先用“人”字进行运算之后得到了51403,然后再反过去算。我在程
    序中要对一些ascii码进行转化得到对应的中文字。呵呵,不管怎样,谢谢你的热心:)
    lazygod(Use any item) 
    用char直接赋值不行的,我试过了,没这么简单。:)
      

  3.   

    51403 - (-14133) = 65536 = 0xFFFF + 1你的ascii码值和偶算出来的值还素有点关系滴~~~~
    所以~~ DWORD i = 65536 + (-14133);//人的ascii码值
    CString str;
    str.Format("%c%c", (BYTE)(i >> 8),(BYTE)(i & 0xFF));

    AfxMessageBox(str); 输出:人希望有点用~~
      

  4.   


    可以如下进行:
    int i = -14133;
    char a[3];
    a[0] = (char)((i & 0xff00) >> 8);
    a[1] = (char)(i & 0xff);
    a[2] = 0;
    printf("%s\n",a);
      

  5.   

    去down一个中国字对应asci的符号表来转换
    或者用宽字符或者CString来解决
    例如:
    char szText[3]={0};
    szText[0] = char(HIBYTE(-14133));
    szText[1] = char(LOBYTE(-14133));
    TRACE("%s",szText);
    我试过了输出是"人"
      

  6.   

    short int ch=-10544;
    CString str="";
    str+=((unsigned char *)(&ch))[1];
    str+=((unsigned char *)(&ch))[0];
      

  7.   

    short int ch=-10544;
    char str[256]="";
    str[0]=((unsigned char *)(&ch))[1];
    str[1]=((unsigned char *)(&ch))[0];
    str[2]=0;
      

  8.   

    或许还有一个反变换的函数,类似chr,当然自己计算也不复杂
    void main()
    {
    // 中国人
    // 10544 17926 14133
    unsigned char buf[]="中国人";
    short a,b=-17926;
    a=256*buf[0] + buf[1] - 65536;
    buf[4]=(b+65536)/256;
    buf[5]=(b+65536)%256;
    printf("%d:%s\n",a,buf+4);
    }
      

  9.   


    这样一段代码也许能说明问题:short a = -14133;char * pa = (char *)&a;char x[3];
    memset(x, 0, 3);
    x[0] = pa[1];
    x[1] = pa[0];
    printf("%s", x);
      

  10.   

    有这么麻烦吗?
    比如'人'字:机器内码是 0xC8CB,用int型表示就是:-14133,只需要明白这些,剩下的工作就很容易了。