十六进制转汉字 高分

十六进制转汉字 高分求助
#include "stdio.h" ;
void main()
{
  unsigned char data[6] = {0x88,0x12,0x80,0x11,0x90,0x89};
  unsigned int china;  
  int i,j;
  for(i = 0;i < 6;i+=2)
  {
  china = (unsigned char)data[i];
  if(data[i] > 0x80)
  {
  china <<= 8;  
  china += data[i+1];  
  //输出
  }
  china = 0;
  }
   
}
请问 :1、这个程序正确不正确 ?
2、输出的时候应该怎么输出 才能成为汉字?
3、如果有现成的例子当然更好
谢谢 ~~~~~~

------解决方案--------------------
C/C++ code

#include "stdio.h"  ; 
void main() 
{ 
    unsigned char data[] = {"preprocessor我爱中国preprocessor"}; 
    unsigned int china;    
    int i,j,tmp; 
    cout<<data<<endl;
    for(i = 0;i < sizeof(data);) 
    { 
        china = (unsigned char)data[i]; 
        if(data[i]  > 0x80) 
        { 
            tmp=china;
            china=data[i+1]; 
            china  <<= 8;             
            china += tmp;   
            printf("%s",&china);
            i+=2;
        } 
        else
            i+=1;
        china = 0; 
    } 
    
}