我正在試圖製作一個程序,在瓦片地圖中的瓦片頂部創建一個正方形。這些瓷磚是64乘64.我想我需要得到鼠標的座標,將它圍繞到64的最接近的倍數,然後用64除以得到瓷磚座標。有沒有更好的辦法?我應該製作所有的瓷磚按鈕嗎?謝謝!如何將數字四捨五入爲64的最接近倍數
3
A
回答
7
你可以做到這一點,如下所示:
int number = 445226;
int roundoff = (number+0x20)&(~0x3f);
其工作原理如下:
- 您先添加
32
(0x20
)的數量,使其四捨五入向上/向下。這意味着低於32
的所有值都會導致小於64
的值和大於32
的值大於64
。 - 你掩蓋了最後六位。
一般而言,按位運算比分割和乘法更快。而且,由於你要求兩個權力,這是一個很好的性能破解你可以使用。
但是,如果你有興趣在瓦座標,你不必再乘以64
我想。在這種情況下,你可以使用:
int number = 445226;
int div64 = (number+0x20)>>0x06; //this is divided by 64, not rounded
關於用戶界面一如既往復式的答案是正確的,但如果你要畫一些樣圖就可以了,我想座標比按鈕更好。尤其是如果在後面的過程中,人們將能夠點擊地圖上位於兩個按鈕之間的項目。
2
對於正整數:
int m64 = 64 * ((n + 32)/64);
還是更看中的,因爲64恰好是2的冪:
int m64 = ((n + 32) >> 6) << 6;
相關問題
- 1. 如何使比例四捨五入到#的最接近倍數?
- 2. 如何將數字四捨五入到最接近的.5?
- 3. 四捨五入到C的1/16的最接近倍數
- 4. 將數字四捨五入到最接近的十位
- 5. 的javascript - 如何四捨五入到最接近的整數
- 6. 四捨五入到最接近
- 7. 四捨五入到最接近的數字紅寶石
- 8. 四捨五入到最接近的數字
- 9. 四捨五入到最接近的下一個數字
- 10. 如何將一個數字四捨五入到最接近的x增量值
- 11. 如何在Jquery中將浮點值四捨五入爲最接近的整數
- 12. 如何將浮點四捨五入到最接近的.001
- 13. 如何將小數點四捨五入到SQL中最接近的偶數?
- 14. 如何將小數點四捨五入到最接近的分數?
- 15. 將值四捨五入爲最接近的50
- 16. 如何將變量四捨五入到數組中最近的數字?
- 17. jQuery的四捨五入到最接近的整數
- 18. 四捨五入到最接近的整數
- 19. 四捨五入到最接近的整數變量
- 20. MATLAB被四捨五入到最接近的整數
- 21. 進度條四捨五入到最接近的整數 - VB.NET
- 22. 四捨五入到最接近的偶數
- 23. 四捨五入到最接近的整數
- 24. 四捨五入到最接近的奇數
- 25. 四捨五入到最接近的結局位數
- 26. 四捨五入到最近的年份
- 27. 四捨五入/關最近的5
- 28. 如何將總成本(雙倍)四捨五入到最近的inetegrs
- 29. 數字四捨五入
- 30. 四捨五入數字
在這裏,你64分,你需要詳談。而'64'的劃分可以通過移動來更高效地完成... –
他爲什麼需要圍繞它?整數運算沒有到最近的單位? – JClassic
@JClassic no。整數算術* trucates *,就像調用'floor()',例如'9/10 - > 0'一樣,它不是舍入到最接近的整數,而是除法結果下面的下一個整數。 – Bohemian