2014-03-04 24 views
-1

還有一個問題,這個操作符有什麼作用?我將如何寫在C#中:如何在C#中編寫「x >> 0」(來自JavaScript)?

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

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators順便說一句,在這種情況下,作者只是以一種棘手的方式將一個數字轉換爲一個整數。這是偏愛可讀的'Math.floor()'而非技巧的另一個原因。 – zerkms

+0

首先搜索答案很重要。自學是唯一的學習方式。 @zerkms,很好的鏈接:)謝謝。 – alexmac

+0

要擴展@zerkms評論http://msdn.microsoft.com/en-us/library/xt18et0d.aspx –

回答

3

我假設你在談論>>運營商。這是一個右移運算符,首先(如有必要)將左參數轉換爲整數,然後右移指定的位數。移位0位使數字保持不變,所以R >> 0是強制R變爲整數的可愛方式。它適用於非負值的Math.floor(R)

在C#中,我相信你可以做同樣的事情用投:(int) R

+1

「一個可愛的方式」: - 代碼是爲人類,而不是機器人 – zerkms

+1

@zerkms - 是的。機器人不喜歡可愛。這在JavaScript中是一個相當常見的習慣用法(正如使用其他按位運算符一樣,例如'R | 0'來做同樣的事情)。請注意,如果可能左側爲負數,則Math.floor()不等價。此外,按位運算符的技巧比調用'Math.floor()'要快很多,如果這是一個緊湊的渲染循環,這可能很重要。 –

+0

現在有道理!謝謝 – Danielok1993