变量转换的有关问题,求教

变量转换的问题,求教?
本帖最后由 VisualEleven 于 2012-12-24 14:18:21 编辑
DQCount11=rec1[3]*256*256*256+rec1[4]*256*256+rec1[5]*256+rec1[6];
BCount11=(beforebuf[7])+(beforebuf[6])*16+(beforebuf[5])*256+(beforebuf[4])*4096+(beforebuf[3])*65536+(beforebuf[2])*1048576+(beforebuf[1])*16777216+(beforebuf[0])*268435456;
NCount11=(nowbuf[7])+(nowbuf[6])*16+(nowbuf[5])*256+(nowbuf[4])*4096+(nowbuf[3])*65536+(nowbuf[2])*1048576+(nowbuf[1])*16777216+(nowbuf[0])*268435456;
if (DQCount11 < BCount11)
{
JSCount11=NCount11;
}
NCount11=DQCount11+JSCount11;
BCount11=DQCount11;
buf1[15]=HIBYTE(HIWORD(NCount11)) & 0XF0;//赋给要发送上位机的字节中
nowbuf[0]=buf1[15]=buf1[15] >> 4;
nowbuf[1]=buf1[16]=HIBYTE(HIWORD(NCount11)) & 0X0F;
buf1[17]=LOBYTE(HIWORD(NCount11)) & 0XF0;
nowbuf[2]=buf1[17]=buf1[17] >> 4;
nowbuf[3]=buf1[18]=LOBYTE(HIWORD(NCount11)) & 0X0F;
buf1[19]=HIBYTE(LOWORD(NCount11)) & 0XF0;
nowbuf[4]=buf1[19]=buf1[19] >> 4;
nowbuf[5]=buf1[20]=HIBYTE(LOWORD(NCount11)) & 0X0F;
buf1[21]=LOBYTE(LOWORD(NCount11)) & 0XF0;
nowbuf[6]=buf1[21]=buf1[21] >> 4;
nowbuf[7]=buf1[22]=LOBYTE(LOWORD(NCount11)) & 0X0F;
所有的数组都是BYTE型,不是数组的都是DWORD型
运行以后假设我所有的数组里的元素都是0,输出也会有很大的数字,这是为什么

------解决方案--------------------
单步调试,看数据有没有溢出
------解决方案--------------------
引用:
DQCount11=rec1[3]*256*256*256+rec1[4]*256*256+rec1[5]*256+rec1[6];
BCount11=(beforebuf[7])+(beforebuf[6])*16+(beforebuf[5])*256+(beforebuf[4])*4096+(beforebuf[3])*65536+(beforebuf[2])*10……


不明白啥意思?“假设我所有的数组里的元素都是0,输出也会有很大的数字,这是为什么?”