关于c51数据转换的问题,怎么才能将4个8位数组的值传给一个32位的变量??

比如;
uint32 start;

fat_Data[0]=0x80;
fat_Data[1]=0x90;
fat_Data[2]=0x88;
fat_Data[3]=0x80;

怎样使start=0x80908880

容易理解的办法:
start=fat_Data[0]*0x1000000+fat_Data[1]*0x10000+fat_Data[2]*0x100+fat_Data[3]
好比1、2、3如何变成123
1*100+2*10+3=123

乘法和左移是一样的,*2其实就是<<1。但单片机对<<1这样的操作效果要高,所以你理解了以后用楼上的等式就可以了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-07-15
start=(fat_Data[0]<<24)+(fat_Data[1]<<16)+(fat_Data[2]<<8)+fat_Data[3];本回答被提问者采纳
第2个回答  2011-07-15
long 就是32位的.. long start ; start=0;start=(start|fat_Data[0])<<24|(start|fat_Data[1]<<16)|(start|fat_Data[2]<<8)|(start|fat_Data[3]);//'|'是按位或

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网