在Javascript中进行位调整

时间:2011-03-16 11:46:38

标签: javascript

好奇。我在C中编写了一个程序,对一个定义页面访问控制的变量进行了大量的按位操作。我想能够在Javascript中做同样的事情。我怎样才能完成这场考验?

任何有关Javascript中的位调整的帮助都会有所帮助。请记住,不允许使用昂贵的功能。

2 个答案:

答案 0 :(得分:1)

JavaScript具有常用的按位运算符,|&~等等。详情请见the specification

以下部分将特别有用:

  • 第11.4.8节:按位NOT(~
  • 第11.7节:按位移位运算符(<<>>
  • 第11.10节:二进制按位运算符(|&

请注意,JavaScript的数字都是浮点数(请参阅第{8.5节,数字类型,在the specification中),但按位运算是按整数定义的。例如,按位NOT运算符的定义:

  

11.4.8按位非运算符(~   
生产UnaryExpression : ~ UnaryExpression评估如下:   
1。让expr成为评估UnaryExpression的结果。   
2。让oldValueToInt32(GetValue(expr))。   
3。返回将按位补码应用于oldValue的结果。结果是带符号的32位整数。

任何体面的实现都能够有效地处理这些问题,避免从Number到内部整数和返回的不必要的转换。

答案 1 :(得分:1)

JavaScript具有与其他语言类似的按位运算符。根据定义,按位运算符是有效的。您应该能够在JS中复制在C程序中执行的所有按位操作。

http://www.eecs.umich.edu/~bartlett/jsops.html