将字符串转为十进制或十六进制不就可以了,如CString s="1101011"转成十进制 int d;
int len;
d=0;
len=s.GetLength();
while (len>0)
{d*=2;
 if (s.Mid(len-1,1)=="1") d++;
 len--;
}

解决方案 »

  1.   

    不太对吧,单片机串口是把一个数据用二进制流的形式发给计算机串口,计算机把收到的二进制流再组合成数据,单片机发送"a",实际上就是发送a的ASCII码到计算机,计算机收到的也应该是a,只不过你需要把这个字转换成16进制或者十进制,再调用处理程序
      

  2.   

    在初始化端口时设置
    m-Serial1.InputMode(1)
    在串行接收中这样写
    if(m_Serial1.GetCommEvent()==2)
    {
         BYTE* byte;
    byte=(BYTE*)(m_Serial1.GetInput().parray-pvData);
    }
      

  3.   

    设收到的值为s="18.09"
    可用
    float t;
    t=atof(s);
      

  4.   

    我觉得你的概念没有搞清楚。你说你得到的是CString的变量,是因为你想这样得到。其实,在串行通讯中都是以二进制的形式传送的,就是0V和5V。关键是你接收过来,你想让他以什么形式显示出来。你接到了CString形式的变量也没有关系,你可以把他转换成整形,然后通过位操作来判断。
      

  5.   

    mscomm控件是我用过的最不好用的软件了