【发布时间】:2011-06-20 05:43:54
【问题描述】:
我对按位运算的概念不熟悉,今天在搞乱一些例子。一切似乎都很清楚,直到我尝试创建一个函数以在 uint 上执行循环位移:
private function rotateLeft(value : uint, shift : int) : uint {
if ((shift &= 31) == 0)
return value;
return (value << shift) | (value >> (32 - shift));
}
任何想法为什么这不起作用?这看起来很简单,但我认为我遗漏了一些明显的东西。
编辑:
我愚蠢地试图改变一个颜色值(例如 0xFF0000)并期待一些类似于 0x0000FF 的东西,而实际上我得到的是 0xFF000000(这是正确的,由于 uint 的长度)-最高有效字节用于 alpha 值。
【问题讨论】:
-
你在测试什么值?
标签: actionscript-3 operators bit-manipulation bitwise-operators