Temp=((ECanaMboxes.MBOX31.MDL.all<<(i<<3))&0xff000000)>>24; C语言 什么意思,不懂,求解释

如题所述

从ECanaMboxes.MBOX31.MDL.all中取出8位长度的数据保存到Temp中。

举例说明:
设ECanaMboxes.MBOX31.MDL.all(以下简称all)中的值为 0x12345678。

当i = 0时,i<<3得0,all<<0得0x12345678,0x12345678 & 0xff000000得0x12000000,0x12000000>>24得0x12。
即Temp = 0x12。

当i = 1时,i<<3得8,all<<8得0x34567800,0x34567800 & 0xff000000得0x34000000,0x34000000>>24得0x34。
即Temp = 0x34。

归纳可知,当i = n时,Temp 得到的是all中第8n至8n+8位的数据。
即,当i递增时,将all中数据以8位分段取出存入Temp。
-----------------------------------
注:
<<为按位左移,作用等于乘以2的n次幂;
&为按位与;
>>为按位右移,作用等于除以2的n次幂。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-10-17
这应该是一个循环中的一句吧?
具体含义要看上下文代码,具体值要看i的取值。
相似回答
大家正在搜