打印
[C语言]

八位数据相加溢出后

[复制链接]
2353|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
一叶倾城wwq|  楼主 | 2018-12-15 15:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
吾要单片机| | 2018-12-15 15:51 | 只看该作者
既然你只要低8位,又何必在乎溢出呢

使用特权

评论回复
板凳
linqing171| | 2018-12-15 21:31 | 只看该作者
是的。
不过从cpu和编译器的角度,你还是用int,最后取低8位,体积最小,代码最快。

使用特权

评论回复
地板
Prry| | 2018-12-15 22:29 | 只看该作者
用位域

使用特权

评论回复
评论
一叶倾城wwq 2018-12-16 16:44 回复TA
做加法如何使用位域呢? 
5
一叶倾城wwq|  楼主 | 2018-12-16 16:40 | 只看该作者
吾要单片机 发表于 2018-12-15 15:51
既然你只要低8位,又何必在乎溢出呢

就是怕存在不妥之处,特来请教一下

使用特权

评论回复
6
一叶倾城wwq|  楼主 | 2018-12-16 16:42 | 只看该作者
linqing171 发表于 2018-12-15 21:31
是的。
不过从cpu和编译器的角度,你还是用int,最后取低8位,体积最小,代码最快。
...

恩,还是不要让程序存在这些溢出比较好,即使不影响功能,个人观点

使用特权

评论回复
7
linqing171| | 2018-12-16 22:55 | 只看该作者
一叶倾城wwq 发表于 2018-12-16 16:42
恩,还是不要让程序存在这些溢出比较好,即使不影响功能,个人观点 ...

这里不影响功能,确实无所谓了。
但是如果优化等级低的时候,整型提升后变成整数进行运算,每次运算后都进行一次截取,所以会有冗余代码。

使用特权

评论回复
8
ayb_ice| | 2018-12-17 09:18 | 只看该作者
是的,非常正确,
很多算法就是这样处理的,
不过最好加点注释,不然看程序有人可能有点晕

使用特权

评论回复
9
一叶倾城wwq|  楼主 | 2018-12-17 10:34 | 只看该作者
ayb_ice 发表于 2018-12-17 09:18
是的,非常正确,
很多算法就是这样处理的,
不过最好加点注释,不然看程序有人可能有点晕 ...

加注释,说道我心坎里去了,我也喜欢加注释的,我怕隔一段时间看不懂自己写的东西

使用特权

评论回复
10
神奇号| | 2018-12-17 17:07 | 只看该作者
我习惯中间用个unsigned int,不希望有溢出

使用特权

评论回复
11
一叶倾城wwq|  楼主 | 2018-12-17 18:44 | 只看该作者
神奇号 发表于 2018-12-17 17:07
我习惯中间用个unsigned int,不希望有溢出

如果是使用汇编的,是如何处理这样的问题呢?

使用特权

评论回复
12
神奇号| | 2018-12-18 08:24 | 只看该作者
一叶倾城wwq 发表于 2018-12-17 18:44
如果是使用汇编的,是如何处理这样的问题呢?

我也不懂汇编

使用特权

评论回复
13
hhxs0216| | 2018-12-19 16:56 | 只看该作者
最好用int类型吧,低8位溢出之后可以或运算清零高8位,容易看懂吧,不管问题也不大。

使用特权

评论回复
14
千岁寒| | 2018-12-20 14:15 | 只看该作者
是可以的啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

80

主题

1342

帖子

11

粉丝