数据类型转换之 QString与binary

来源:互联网 发布:淘宝加入购物车看不到 编辑:程序博客网 时间:2024/04/25 02:37
QString from; unsigned char *to; int toSize;  unsigned char *buff;    int buffSize;  int i;    buffSize = toSize*2;                 //此处 *2 为自己工作需要  if(from.size() != buffSize)    return -1;  buff = (unsigned char *)malloc(buffSize);  if(buff == NULL)    return -1;  memcpy(buff, from.toLocal8Bit().constData(), buffSize);    //先将QString 转换为char*    for(i=0; i<buffSize; i++)  {    if(buff[i]>='0' && buff[i]<='9')                   buff[i] = buff[i] - '0';                                             else if(buff[i]>='a' && buff[i]<='f')      buff[i] = buff[i] - 'a' + 10;                               //buff[i] -=  'a' - 10;    else {      return -1;      free(buff);    }  }  for(i=0; i<toSize; i++)    to[i] = buff[i<<1]<<4 + buff[i+1];              //将buf[i<<1]<<       右移四位        free(buff);  return 0;

此处 unsigned char *  等同于binary 数据类型