登录 免费注册 首页 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

keil c关于乘法

作者:cityuser 栏目:单片机
keil c关于乘法
小弟初次使用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
将0x1251后面加一个L即可
 
参与讨论
昵称:
讨论内容:
 
 
相关帖子
我用AT89C51来产生PWM……麻烦了,做不出来
关于系统电源开关问题
请教高手们关于低功耗的问题
我的拼音输入法程序,请各位高手多指教。(二)
谁能给小弟讲一下?查表法键盘处理的原理?
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号