好奇。我在C中编写了一个程序,对一个定义页面访问控制的变量进行了大量的按位操作。我想能够在Javascript中做同样的事情。我怎样才能完成这场考验?
任何有关Javascript中的位调整的帮助都会有所帮助。请记住,不允许使用昂贵的功能。
答案 0 :(得分:1)
JavaScript具有常用的按位运算符,|
,&
,~
等等。详情请见the specification。
以下部分将特别有用:
~
)<<
和>>
)|
和&
)请注意,JavaScript的数字都是浮点数(请参阅第{8.5节,数字类型,在the specification中),但按位运算是按整数定义的。例如,按位NOT运算符的定义:
11.4.8按位非运算符(
~
)
生产UnaryExpression : ~ UnaryExpression
评估如下:
1。让expr
成为评估UnaryExpression
的结果。
2。让oldValue
为ToInt32(GetValue(expr))
。
3。返回将按位补码应用于oldValue
的结果。结果是带符号的32位整数。
任何体面的实现都能够有效地处理这些问题,避免从Number
到内部整数和返回的不必要的转换。
答案 1 :(得分:1)
JavaScript具有与其他语言类似的按位运算符。根据定义,按位运算符是有效的。您应该能够在JS中复制在C程序中执行的所有按位操作。