【发布时间】:2012-02-02 18:09:10
【问题描述】:
这是 C# 中的代码。
我只需要知道我是否正确。
我不确定是否使用运算符>>。
这段代码:
winHalfWidth = this.ClientSize.Width >> 1; // both is int
做一样的:
winHalfWidth = this.ClientSize.Width / 2;
如果我是对的,这段代码应该可以:
quaterWidht = this.ClientSize.Width >> 2;
应该与以下内容相同:
quaterWidth = this.ClientSize.Width / 4;
所以 2 个问题:
- 对吗?
- 使用
>>和/有什么区别吗?- 当我们谈论 int 值时?
- 当我们谈论浮点值时? (我觉得可能有……但我不确定。)
像是/否这样的答案会很好:)
谢谢。
【问题讨论】:
-
您是否尝试过通过编写测试代码然后对其进行调试来获得这些答案?这是从语言和框架中获得是/否答案的简单方法。
-
没错,有条件的。我认为对于负数,>> 不会给出与 / 相同的结果。而且您只能将其与整数一起使用,而不能与浮点数一起使用。
-
如果您不确定位移的作用,您确定除法的作用,并且您正在考虑用一个代替另一个,为什么不拯救自己,未来的你,和你的代码的未来维护者(也许是你,也许不是你)的麻烦,只是分裂?
-
请参阅在副本中引用的文章中的链接。它描述了 >> 什么时候表现得像除法,什么时候(更重要的是)它不......
-
我的经验法则是,当你想移动位进行位操作时使用 >,而不是当你想执行算术技巧时,否则它会变得更难维护。
标签: c#