No.45379 作者:LEON1741 邮件:leon1741@126.com ID:111064 登陆:1次 文章数:2篇 最后登陆IP:202.153.52.221 最后登陆:2008/5/25 10:06:09 注册:2008/5/19 20:02:39 财富:110 发帖时间:2008/5/19 20:14:14 发贴者IP:202.153.52.220 标题:LEON1741:关于C语言中的移位运算的一个疑问,望各位大侠帮忙解答 摘要:No.45379关于C语言中的移位运算的一个疑问,望各位大侠帮忙解答 大家都知道,实现高效的C 语言编写的方法中,有一招是使用位操作。 我前几天在网上看到一篇文章中讲到以下一个例子,就是关于移位运算的问题。 作者给了一个比较,首先是正常的运算: int I,J; I=257/8; J=456%32; 然后是位运算: int I,J; I=257> > 3; J=456-(456> > 4 < <4); 并说第二种方法仅仅是几句相关的汇编,代码更简洁、效率更高。 这是没错, 但是其中的J的运算表达式中,为什么要先右移4位后再左移4位? 它原来是除32求余,换算过来应该也是5位啊?那它移4位的结果应该会出错吧 于是我自己去Turbo C环境下试了试, 却发现不仅仅4行,6也行,运算结 ......
>>返回讨论的主题
|