这个单片机程序的数学题,有点纳闷

2019-07-15 14:35发布

本帖最后由 music_mc 于 2016-3-30 16:38 编辑

A是unsigned char  
B是int
请看下题


A=19;
B=(int)((A/ 9)*10;
B=B+9;
B=B/10;
A=(BYTE)(B);

到这里问,A为什么不等于3?而是等于2?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
zheliaaa
1楼-- · 2019-07-15 17:50
19/9=2;  2*10=20;  20+9=29;  29/10=2;  不是就是等于2吗为什么要等于3
music_mc
2楼-- · 2019-07-15 20:51
 精彩回答 2  元偷偷看……
music_mc
3楼-- · 2019-07-15 21:53
A=19;
B=((int)((A/ 9)*10+9)/10;
A=(BYTE)(B);

这样也不行
寻觅Y探索
4楼-- · 2019-07-15 22:25
music_mc 发表于 2016-3-30 16:39
有符号,19/9=2.1 *10=21 +9=30.

这个符号是正负号,计算机中19/9 =2
zheliaaa
5楼-- · 2019-07-15 23:52
如果想处理带小数点的数字,请使用float
零tot
6楼-- · 2019-07-16 01:46
是等于29/10整型数据2

一周热门 更多>