本帖最后由 luxiaojianlumin 于 2014-5-23 19:34 编辑
写了一个16位乘法计算的程序:如下
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
long a;
int b;
void main()
{
b=1000;
while(1)
{
a=b*1125;
}
}
运算结果应该是1125000,用计算器转换后对应的16进制是112A88。
实际结果是10888,对应的16进制0X00002A88,最前面的两位11丢了,不知道是怎么回事? |