回 帖 发 新 帖 刷新版面

主题:m*100的答案是错的 ?

在主函数的开头
C语言语句如下:
 int p;
          char m;
        p=m*10;
其对应的汇编,我观察到如下:
79C0    0E02     MOVLW 0x2
  79C2   50DB MOVF 0xfdb, W, ACCESS
  79C4    0D64     MULLW 0x64
  79C6    CFF3     MOVFF 0xff3, 0x14
  79C8    F014     NOP
  79CA    6A15   CLRF 0x15, ACCESS
  79CC  BE14  TFSC 0x14, 0x7, ACCESS
  79CE    6815     SETF 0x15, ACCESS
  79D0    C014     MOVFF 0x14, 0xfde
  79D2    FFDE     NOP
  79D4    C015     MOVFF 0x15, 0xfdd
  79D6    FFDD     NOP


当m=1,p=100;当m=2……9时,得到的p值总是错的 
帮我查一下原因 谢谢

回复列表 (共1个回复)

沙发

int p;
          char m;
        p=(int)m*100;

解决了 

我来回复

您尚未登录,请登录后再回复。点此登录或注册