char buffer[4];
int code;buffer是从二进制文件读进来的字符串数组。
想转换成int该怎么办?

解决方案 »

  1.   

    如果你的buffer的内容形如 buffer[4] = {"1","2","3","4"};
    则用atoi(buffer)即可。
    int code = atoi (buffer);
    则 code=1234;如果你的buffer的内容不是这个类型的则需要自己转换(如你所说的二进制文件读取,我认为你应用此法);code = 16777216*buffer[0]+65536*buffer[1]+256*buffer[2]+buffer[3];
      

  2.   

    char buffer[4];
    int code;
    char* p=buffer;
    code=(int)*p++;
    这样不知道可不可以
      

  3.   

    code = *(int *)buffer或code = ntohl(*(int *)buffer);看怎么定义了
      

  4.   

    code = buffer[0]<<16 | buffer[1]<<8 | buffer[2]<<4 | buffer[3];
    这样应该不慢了吧
      

  5.   

    为什么打印出来的buffer[i]有时会出现许多fffff在前面。
    例如,
    TRACE("%x",buffer[0]);如果值为B5的话,打印出来就是ffffffb5。请问该怎么办?
      

  6.   

    checkyvc6的想法很好,但是应该这样code = buffer[0]<<24 | buffer[1]<<16 | buffer[2]<<8 | buffer[3];而且发现应该使用 unsigned char