技术宅的结界

 找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 76|回复: 2
收起左侧

【算法】带四舍五入的整除

[复制链接]

984

主题

2143

帖子

5万

积分

用户组: 管理员

一只技术宅

UID
1
精华
197
威望
261 点
宅币
15807 个
贡献
30732 次
宅之契约
0 份
在线时间
1504 小时
注册时间
2014-1-26
发表于 2018-3-30 09:42:30 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有帐号?立即注册→加入我们

x
在嵌入式开发上使用浮点数等于作死。

[C] 纯文本查看 复制代码
#define DIVIDE_WITH_ROUND(N, D)  (((N) == 0) ? 0:((((N) * 2)/(D)) + 1)/10)


经测试,在特殊情况下依然有误差。要根据实际的使用需求来使用它。

在单片机平台上,使用这种除法来实现LCD屏幕绘制斜线,效果比较好。贴近于你在PC上用浮点数+SetPixel来绘制斜线。和GDI的MoveToEx()、LineTo()的效果非常接近。

参考资料:
https://stackoverflow.com/questions/
2422712
/rounding-integer-division-instead-of-truncating/
18067292

https://
en
.wikipedia.org/wiki/Line_drawing_algorithm

23

主题

68

帖子

957

积分

用户组: 版主

UID
1821
精华
6
威望
57 点
宅币
714 个
贡献
31 次
宅之契约
0 份
在线时间
169 小时
注册时间
2016-7-12
发表于 2018-4-11 20:13:35 | 显示全部楼层
N 和  D似乎需要括号!

984

主题

2143

帖子

5万

积分

用户组: 管理员

一只技术宅

UID
1
精华
197
威望
261 点
宅币
15807 个
贡献
30732 次
宅之契约
0 份
在线时间
1504 小时
注册时间
2014-1-26
 楼主| 发表于 2018-4-14 19:53:17 | 显示全部楼层
Ayala 发表于 2018-4-11 20:13
N 和  D似乎需要括号!

已更新

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|技术宅的结界 ( 滇ICP备16008837号|网站地图

GMT+8, 2018-4-26 00:00 , Processed in 0.091682 second(s), 19 queries , Gzip On, Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表