|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
keil c关于乘法 |
作者:cityuser 栏目:单片机 |
小弟初次使用keil ,在程序中定义了一个长整型变量,用来存放两个整型相乘后的结果(处于问题需要),但在随后的模拟过程中,发现四个字节的长整型,只有后两个有数。不知为何?小弟向各位大侠请教!! 程序如下: #define uCHAR unsigned CHAR extern void conversion(uCHAR); extern dta_H; extern dta_L; void dat_con(void) { uCHAR idata dta[8] ; uCHAR i; unsigned int idata dta1; unsigned LONG idata dta2; // for(i=0;i<8;i+=2) //此处接受串口送来8字节数据放入数组dta[8]中,8字节数据 { conversion(0x10); //为四组数,高字节在前,低字节在后 dta[i]=dta_H; dta[i+1]=dta_L; } dta1=dta[0]*0x100+dta[1]; dta1=dta[2]*0x100+dta[3]+dta1; dta1=dta[4]*0x100+dta[5]+dta1; dta1=dta[6]*0x100+dta[7]+dta1; // transmit(dta[6],dta[7]); dta1=dta1/4; //求平均值放入整型变量dta1 // dta[0]=dta1/0x100; // dta[1]=dta1-dta[0]*0x100; dta2=0x1251*dta1; //dta1与数0x1251相乘,结果放入长整型dta2中,此处出问题???? dta1=dta2/0x0FFF-0x02EE; dta_H=dta1/0x100; dta_L=dta1-dta_H*0x100; // transmit(dta_H,dta_L); } |
2楼: | >>参与讨论 |
作者: fzq21ic 于 2005/5/7 15:25:00 发布:
将0x1251后面加一个L即可 |
|
|
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入 |
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |