比如;
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这样的操作效果要高,所以你理解了以后用楼上的等式就可以了
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]);//'|'是按位或