这个单片机程序的数学题,有点纳闷
时间:10-02
整理:3721RD
点击:
A是unsigned char
B是int
请看下题
A=19;
B=(int)((A/ 9)*10;
B=B+9;
B=B/10;
A=(BYTE)(B);
到这里问,A为什么不等于3?而是等于2?
19/9=2; 2*10=20; 20+9=29; 29/10=2; 不是就是等于2吗为什么要等于3
有符号,19/9=2.1 *10=21 +9=30.
A=19;
B=((int)((A/ 9)*10+9)/10;
A=(BYTE)(B);
这样也不行
这个符号是正负号,计算机中19/9 =2
如果想处理带小数点的数字,请使用float
是等于29/10整型数据2
这个是C语言的的取整函数 29/10=2