以文本方式查看主题 - ╋艺 镇╋ (http://wdystv.com/bbs/index.asp) -- ┣◇网站建设&Web语言 (http://wdystv.com/bbs/list.asp?boardid=4) ---- [js]javascript位操作符 (http://wdystv.com/bbs/dispbbs.asp?boardid=4&id=2084) |
-- 作者:admin -- 发布时间:2010/8/19 10:34:22 -- [js]javascript位操作符 执行位操作时,操作符会将操作数看作一串二进制位(1和0),而不是十进制、十六进制或八进制数字。例如,十进制的 9 就是二进制的 1001。位操作符在执行的时候会以二进制形式进行操作,但返回的值仍是标准的 JavaScript 数值。 从原理上讲,位逻辑操作符的工作流程是这样的: 例如,9 的二进制表示为 1001,15 的二进制表示为 1111。所以如果对这两个数应用位逻辑操作符,结果应该像下面这样:移位操作符 移位操作符需要两个操作数:第一个是要进行移位的数值,第二个指定要对第一个数移位的数目。移位的方向由使用的操作符决定。 移位操作符将把两个操作符转换为 32 位整型数值,并返回与左操作数类型相同的结果。 << (左移) 该操作符将把第一个操作数向左移若干位。移出的位将被忽略。右侧空位补零。 例如,9<<2 结果为 36,因为 1001 向左移两位变成 100100,这是 36。 >> (算术右移) 该操作符将把第一个操作数享有移若干位。移出的位将被忽略。左侧的空位补上与原来最左面位相同的值。 例如,9>>2 结果为 2,因为 1001 右移两位变成 10,这是 2。反之,-9>>2 结果为 -3,因为要考虑到符号位。 >>> (逻辑右移) 该操作符将把第一个操作数享有移若干位。移出的位将被忽略。左侧的空位补零。 例如,19>>>2 结果为 4,因为 10011 右移两位变成 100,这是 4。对于非负数,算术右移和逻辑右移结果相同。 |