我不知道有什么好的算法,只能是硬来吧:char cTemp;
CString strBin;
strBin.Empty();
for (int i=0; i++; i<2){
    cTemp = a[i];
    for(int j=0; j++; j<8){
        if(0x80 & cTemp) strBin += "1";
        else strBin += "0";
        cTemp <<= 1;
    }
}

解决方案 »

  1.   

    to : HowUCan(怎么办) 
      这个算法还可以吗,最主要得是我这个东西,写得是一个接口程序,pb当中要调用一个读写程序,其中就有关于字符串得问题,你这个算法不错,
      还有一个问题是一个逆过程,怎么样把一串字符串以八个为单位就是把上面得,东西还原成为
    a[0]=0x34,a[1]=0xaf,能够有通用一点得算法吗?
      还有假设定义了这么一个unsigned char szbuffer[2]这种结构呢,这个算法就有点问题了吗,请教你可以吗
      

  2.   

    unsigned char szbuffer[2];
    BYTE *pBin; //指向二进制字符串首址
    int nBitCnt = 0; //位计数
    int nCharCnt = 0; //字符计数
    szbuffer[0] = 0;
    while(*pBin){
        if(*pBin == '1') szbuffer[nCharCnt]++ ;
            pBin++;
            nBitCnt ++;
            if(nBitCnt == 8){
                nBitCnt = 0;
                nCharCnt ++;
                szbuffer[nCharCnt]=0
            }
            else szbuffer[nCharCnt] <<= 1;
    }
    这里我没有管二进制字符个数和szbuffer字符个数是否匹配的问题
      

  3.   

    内存分配不就是 new与delete, malloc与free 这些东西么
      

  4.   

    HowUCan 的办法真的挺好的 :)要我的话会罗罗嗦嗦写一大堆。
      

  5.   

    我只写过串口通信的东西,用CreateFile那一套
      

  6.   

    to HowUCan(怎么办) 
    你能够给我一些这个方面的资料吗
      

  7.   

    char cTemp;
    CString strBin;
    strBin.Empty();
    for (int i=0; i++; i<2){
        cTemp = a[i];
        for(int j=0; j++; j<8){
            if(0x80 & cTemp) strBin += "1";//这里的话两个数字求与当为true的时候加一,这里好象没有体现出来呀
            else strBin += "0";
            cTemp <<= 1;
        }
    }
    我对你这个程序提个意见以上有我的注释在 ,我认为你有不妥的地方,
      

  8.   

    char temp1[10];
    char temp2[10];char *MyStr;_itoa(a[0],temp1,2);
    _itoa(a[1],temp2,2);strcat(temp1,temp2);
    MyStr=temp1;
      

  9.   

    cjjtlg(草鸡):
    if(0x80 & cTemp) strBin += "1";//这里的话两个数字求与当为true的时候加一,这里好象没有体现出来呀
    你是什么意思?if(0x80 & cTemp) 和 if(0x80 & cTemp == TRUE)是等价的呀
            
      

  10.   

    关于串口通信这上面的帖子多得很,搜索一下吧,我都是看书和MSDN的,零零碎碎看些文章。
    搜索“串口”,能出来8页