還有一個問題,這個操作符有什麼作用?我將如何寫在C#中:如何在C#中編寫「x >> 0」(來自JavaScript)?
data[id] = R >> 0;
data[id + 1] = G >> 0;
data[id + 2] = B >> 0;
還有一個問題,這個操作符有什麼作用?我將如何寫在C#中:如何在C#中編寫「x >> 0」(來自JavaScript)?
data[id] = R >> 0;
data[id + 1] = G >> 0;
data[id + 2] = B >> 0;
我假設你在談論>>
運營商。這是一個右移運算符,首先(如有必要)將左參數轉換爲整數,然後右移指定的位數。移位0位使數字保持不變,所以R >> 0
是強制R
變爲整數的可愛方式。它適用於非負值的Math.floor(R)
。
在C#中,我相信你可以做同樣的事情用投:(int) R
等
「一個可愛的方式」: - 代碼是爲人類,而不是機器人 – zerkms
@zerkms - 是的。機器人不喜歡可愛。這在JavaScript中是一個相當常見的習慣用法(正如使用其他按位運算符一樣,例如'R | 0'來做同樣的事情)。請注意,如果可能左側爲負數,則Math.floor()不等價。此外,按位運算符的技巧比調用'Math.floor()'要快很多,如果這是一個緊湊的渲染循環,這可能很重要。 –
現在有道理!謝謝 – Danielok1993
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators順便說一句,在這種情況下,作者只是以一種棘手的方式將一個數字轉換爲一個整數。這是偏愛可讀的'Math.floor()'而非技巧的另一個原因。 – zerkms
首先搜索答案很重要。自學是唯一的學習方式。 @zerkms,很好的鏈接:)謝謝。 – alexmac
要擴展@zerkms評論http://msdn.microsoft.com/en-us/library/xt18et0d.aspx –