好的,我得到了一个公式,可以使用 i 和 j(二维数组中值的坐标)确定 0.0 到 1.0 之间的浮点值。我只是想确切地知道这个公式的作用。对我来说完全是无稽之谈。我在它自己的函数中实现了它,其中 i 和 j 的 int 值作为参数传递。有人可以提供解释吗?我不必理解它,因为他把它交给我们只是为了按原样使用,但我真的很想知道。
float col = float (((i & 0x08) == 0) ^ ((j & 0x08) == 0));
这里到底发生了什么?
最佳答案
如果用 i,j
作为 x,y 坐标绘制,结果将是一个 8x8 像素正方形的棋盘格。
i & 0x08
和 j & 0x08
只是测试每个轴的一个位。该位将每 8 个像素更改一次状态。
== 0
会将每个结果转换为 bool 值,计算结果为 0 或 1。它还会反转结果,但我认为这与整个公式无关。
如果两者相同,^
异或运算符将返回 0,如果不同,则返回 1。这就是您获得棋盘的方式 - 每次 i
或 j
越过边界时,结果都会交替。
关于c++ - 这个 float 公式是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14350705/