【问题标题】:How to write "x >> 0" (from JavaScript) in C#? [duplicate]如何在 C# 中编写“x >> 0”(来自 JavaScript)? [复制]
【发布时间】:2014-04-06 17:43:04
【问题描述】:

还有一个问题,这个操作符是做什么的?我将如何用 C# 编写它:

   data[id] = R >> 0;
data[id + 1] = G >> 0;
data[id + 2] = B >> 0;

【问题讨论】:

标签: c# javascript


【解决方案1】:

我假设您说的是>> 运算符。这是一个右移运算符,首先(如果需要)将左参数转换为整数,然后右移指定的位数。移动 0 位使数字保持不变,因此 R >> 0 是一种将 R 强制为整数的可爱方式。对于非负值,它的作用类似于 Math.floor(R)

在 C# 中,我相信您可以使用演员表做同样的事情:(int) R 等。

【讨论】:

  • “一种可爱的方式” :-D 代码是为人类设计的,不是为机器人设计的
  • @zerkms - 是的。机器人不欣赏可爱。这是 JavaScript 中相当常见的习惯用法(使用其他位运算符,如 R | 0,来做同样的事情)。请注意,如果左侧可能为负,Math.floor() 不等效。此外,按位运算符的技巧比调用Math.floor() 快很多,如果这是在紧密的渲染循环中,这可能很重要。
  • @Ted Hopp:似乎我们对代码有不同的美感。对我来说,它是可读且可维护的代码,其中包含的运算符是根据其最初的设计目标使用的,而不是它们棘手的副作用。
  • @L.B: 在 JS 中 everything is a float 不是吗?
  • +1。回答问题。我不认为它是否符合某人的个人品味真的那么重要。
猜你喜欢
  • 2013-12-08
  • 1970-01-01
  • 1970-01-01
  • 2013-08-05
  • 2018-08-31
  • 1970-01-01
  • 2014-08-02
  • 2016-11-12
  • 1970-01-01
相关资源
最近更新 更多