免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: _cer
打印 上一主题 下一主题

这两种写法有好坏之分吗?或者说它们有区别吗? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2010-03-22 17:34 |只看该作者
回复 9# _cer
負数

-1
-2
-3
-4
-5

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
12 [报告]
发表于 2010-03-22 17:42 |只看该作者
如果num为无符号数,会怎么样?

论坛徽章:
1
双子座
日期:2014-08-29 17:15:03
13 [报告]
发表于 2010-03-22 18:11 |只看该作者
难道
num = (++num) > 999999 ? 1 : num;
最简单?

论坛徽章:
0
14 [报告]
发表于 2010-03-22 18:32 |只看该作者
上面的两个代码根本不等价阿。。。。没什么讨论的,没上下文环境

论坛徽章:
0
15 [报告]
发表于 2010-03-22 19:04 |只看该作者
难道
num = (++num) > 999999 ? 1 : num;
最简单?
srdgame 发表于 2010-03-22 18:11



    这个分明就是if else

论坛徽章:
0
16 [报告]
发表于 2010-03-22 19:32 |只看该作者
普通的整形除法,现代的CPU下都是专门线路实现的,比普通指令多费不了多少个周期,但条件转移指令对流水线的影响可是致命的,尤其像老P4.
但像C51那些芯片,搞个32位除法对性能影响也是很吓人的。
但如果程序很简单,就根本不用考虑这个,程序的大部分地方都不用考虑性能,可读性更重要

论坛徽章:
0
17 [报告]
发表于 2010-03-22 19:36 |只看该作者
两段程序数值范围一样吗?第二段是[0,999998]吧?

论坛徽章:
0
18 [报告]
发表于 2010-03-22 19:44 |只看该作者
有,1少做一个除法;除法曾经被认为是应该尽量避免的操作。
prc 发表于 2010-03-22 16:09



    但是每次都要判断

论坛徽章:
0
19 [报告]
发表于 2010-03-22 19:48 |只看该作者
num = (++num) & 999998 不行吗?

论坛徽章:
0
20 [报告]
发表于 2010-03-22 19:56 |只看该作者
num = (++num) & 999998 不行吗?
okocha-jay 发表于 2010-03-22 19:48



    好像还真不行。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP