我正在尝试创建一个程序,在瓷砖地图上创建一个正方形。每个瓷砖大小为64x64。我认为需要获取鼠标的坐标,将其四舍五入到最近的64的倍数,并将其除以64以获取瓷砖坐标。是否有更好的方法?我应该将所有瓷砖都制作成按钮吗?谢谢!
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
对于正整数:
int m64 = 64 * ((n + 32) / 64);
或者更加花哨,因为64恰好是2的幂:
int m64 = ((n + 32) >> 6) << 6;
floor()
一样,例如9/10 -> 0
,这不是四舍五入到最接近的整数,而是向下取整到除法结果的下一个整数。 - Bohemian