关于串口接收数据中取值的有关问题

关于串口接收数据中取值的问题
void CRS232CommDlg::OnOnCommMscomm1() 
{
// TODO: Add your control notification handler code here
UpdateData(true);
VARIANT variant_inp;
COleSafeArray safearray_inp;
long i=0;
int len;
int a;
char b;
CString recv;
char rxdata[1000];
CString tmp;
switch (m_mscom.GetCommEvent())
{
case 2:
{
variant_inp=m_mscom.GetInput();
safearray_inp=variant_inp;
len=safearray_inp.GetOneDimSize();
for(i=0;i<len;i++)
{
safearray_inp.GetElement(&i,&rxdata[i]);
}
rxdata[i]='\0';
}
b=rxdata[0];
recv=b;
a=atoi(recv);
if(a=0)
m_recv="0";
else
m_recv="1";
//m_recv+=rxdata;
UpdateData(false);
break;
default:
break;
}
}
我编了一个串口接收的程序,我现在想用接收到的数据的第一位(剩下的数据用在其他方面),比如说我在一端发送110000,在另一端接收数据,我现在想用接收数据的第一位,所以用了一个条件语句,但是为什么我无论在一端发送110000还是010000接收到的都是1呢(接收的数据是放在m_recv中的)。

------解决方案--------------------
if(a=0)
这是要判断还是要赋值?
------解决方案--------------------
探讨
if(a=0)
这是要判断还是要赋值?