如何把十六进制表示的字符串"34ee665"转化为十进制的字符串"55502437"?如何读一个二进制文件,并使前4个字节的数字高位与低位互换,在求出他的十进制的值?
  例如:二进制的文件‘1100101111001100100111000000011’(十六进制为0x65,0xe6,0x4e,0x3),
        怎么把高低位互换得到“0x034ee665”?
并怎么把他读成字符串“55502437”(十进制)?
怎么读出此二进制文件的第7位是0还是1?

解决方案 »

  1.   

    int n=0x34ee665;
    CString str;
    str.Format("%u",n);
      

  2.   

    int i=0;
    char* str="34ee665";
    char str1[256];
    sscanf(str,"%x",&i);
    sprintf(str1,"%d",i);
      

  3.   

    可是我怎么才能得到str='4ee665',怎么从二进制中读出来?如何读一个二进制文件,并使前4个字节的数字高位与低位互换,在求出他的十进制的值?
      例如:二进制的文件‘1100101111001100100111000000011’(十六进制为0x65,0xe6,0x4e,0x3),
            怎么把高低位互换得到“0x034ee665”?
    并怎么把他读成字符串“55502437”(十进制)?
    怎么读出此二进制文件的第7位是0还是1?
      

  4.   

    a.txt 0x65,0xe6,0x4e,0x3
    int i=0;
    char str1[256];
    FILE *file;
    file=fopen("F:\\a.txt","rb");
    fread(&i,4,1,file);
    sprintf(str1,"%d",i);

    fclose(file);
      

  5.   

    高低位互换可以通过位运算,与,或,加上移位进制转化用Format就可以了
    第一个参数可以取值
    d int Signed decimal integer. 
    i int  Signed decimal integer. 
    o int  Unsigned octal integer. 
    u int  Unsigned decimal integer. 
      

  6.   

    判断某一位是否为一可以
    if((i&0x80)==0x80)这种方式
      

  7.   

    可是我怎么从二进制文件中把他们读出来呢?
      unsigned char szBuf[4];
      int nRet = m_pBilFile->Read(szBuf, m_nBytesPerLine);
      读出来後怎么把他表示为CString类型(十进制表示)
      

  8.   

    可是我的“34ee665”要在二进制文件中读出来,而不是定义一个常量,该怎么办?我用unsigned char szBuf[4];
      int nRet = m_pBilFile->Read(szBuf, m_nBytesPerLine);
      读到数组中,下一步该怎么把它表示出来?
      

  9.   

    unsigned char szBuf[4];
    int nRet = m_pBilFile->Read(szBuf, m_nBytesPerLine);int HexToDecFour(unsigned char * szBuf)
    {
    char bt[4];
    bt[0]=szBuf[3];
    bt[1]=szBuf[2];
    bt[2]=szBuf[1];
    bt[3]=szBuf[0]; int iReturn=(int)(*((unsigned int*)bt)); return iReturn;
    }
      

  10.   

    int atoi( const char *string );
      

  11.   

    a.txt并非文本文件,而是二进制文件,里面的内容如上