1

我必须做一些按位运算来为我的游戏执行碰撞检查,但是,我偶然发现了一些我不知道的十六进制表示法。

示例来自:http ://www.yoyogames.com/tech_blog/7

使用上面的二进制技巧,我们可以用 Y 坐标做一个简单的 AND

Y = Y & $fffffff0

,这将使我们摆脱低位,使值成为 16 的倍数,并将其置于碰撞之外,然后返回 64;自从

%1001000 (68) & $fffffff0 = %1000000 (64).

另一个公式,来自:http ://gmc.yoyogames.com/index.php?showtopic=552034

$fffffff0 = 4294967280 = ~$F = ~15
$ffffffe0 = 4294967264 = ~$1F = ~31

这是什么十六进制表示法?'$' 是什么意思?

4

1 回答 1

1

~是按位运算的运算符NOT。它所做的是反转所有位。0变成1,1变成0。

$前面的值告诉编译器它是一个十六进制数。没有它,fffffff0将被理解为是一个变量名。

所以你看 while15意味着15十进制和f十六进制,$1515十六进制和21十进制。

于 2014-07-27T05:40:13.023 回答