C++ 位移
最近看源代码 里面有好多位移的,请教下
uint8 i = 0;
uint8 c = 0;
uint8 cnt = 0;
int8 n[PHONE_SPACE_NUMBER_LEN];
if((len >> 1) > num_len)
{
*status = CMD_PARAM_ERROR;
return;
}
for(i = 0; i < len; i++)
{
c = (data[i] & 0x0f);
if((c > 9) && (c != 0x0f))
{
*status = CMD_PARAM_ERROR;
return;
}
if(c == 0x0f)
{
n[cnt++] = '\0';
break;
}
n[cnt++] = c + '0';
c = ((data[i] >> 4) & 0x0f);
if((c > 9) && (c != 0x0f))
{
*status = CMD_PARAM_ERROR;
return;
}
if(c == 0x0f)
{
n[cnt++] = '\0';
break;
}
n[cnt++] = c + '0';
}
for(i = 0; i < cnt; i++)
{
num[i] = n[i];
}
}
这个data数组里面是不超过15位的电话号码,
1:怎么len>>1 len值是8啊 数字怎么也位移?(第7行)
2为什么要判断这个: if((c > 9) && (c != 0x0f)).这C与9有什么关系?