我不知道是否「夾緊」是這個正確的術語,但我真的不知道還有什麼叫它。假設我們想限制一個整數以保持在任意範圍內,比如0-50。這可以通過用if語句測試當前值並相應地分配最大值或最小值來輕鬆實現。但是,將整數保持爲最大值還是最小值的最快方法是什麼?最快的方法來鉗制一個整數
0
A
回答
4
一樣方便
var normalized = Math.Min(50, Math.Max(0, value));
由於性能:
public static int Max(int val1, int val2) {
return (val1>=val2)?val1:val2;
}
這就是它是如何implemented in .NET,因此它不太可能,你甚至可以更好地實現它。
相關問題
- 1. 最快的方法來做一個FFT
- 2. 最快的方法來繪製網格
- 3. 快速的方法來湊整數
- 4. HTML:最快/最好的方法來更新一個大表
- 5. 增加一個BitArray(二進制數)的最快方法是?
- 6. 複製SQL數據的最快方法
- 7. 最快的方法來檢查每個實例只有一個?
- 8. 鉗位遞增整數?
- 9. 最快的方法來訂購一個巨大的矢量?
- 10. 哪一個是最快的方法
- 11. 將一個數組列表複製到另一個列表的最快方法
- 12. 平均ARGB顏色整數的最快/最簡單的方法?
- 13. 快速的方法來從一個bitset
- 14. 最快的方式唯一整數從2個陣列
- 15. 最快的方法來隱藏一個pictureboxes
- 16. C++最快的方法來打一個URL
- 17. 什麼是一些最快的方法來處理這個?
- 18. 最快的方法來計算一個大的數字列表模數
- 19. 最快的方法來打包一個Java控制檯應用程序
- 20. 最快捷的方法來比較兩個字符串數組
- 21. 將BufferedImages繪製到另一個BufferedImage的最快方法
- 22. 最快的方式輸入整數
- 23. 最快的方法來實現精靈
- 24. 最快的方法來計算卷積
- 25. SQL - 最快的方法來更新
- 26. 獲得整數數組的漢明距離的最快方法
- 27. 做整數除法的最快方法是什麼?
- 28. 最快的方法來檢查是否有10個整數已從上一個週期更改
- 29. 最快的方法來創建一個結構數組的只讀副本?
- 30. 最快的方法來檢查是一個數組是空的vb.net
http://stackoverflow.com/a/3176617/442444 – CarbineCoder
如果內置功能是您在C#中尋找鉗位的功能,則可能無法使用該功能。使用這些抽象類可以安全地爲您的目的服務,而不必擔心性能瓶頸。 – CarbineCoder
針對min和/或max的檢查最終通常會「編譯」到CPU上的整數比較和分支指令,該指令大約在5-10個時鐘週期或更短的時間週期內。你爲什麼關心這個級別的時鐘週期。當然,讓代碼易讀並且易於維護,然後使用一些奇特的位移或布爾屏蔽技巧,節省1個時鐘週期就顯得尤爲重要。 –