判斷乙個數的奇偶(|)
var n =
2n |
1// 0
var n =
1n |
1// 1
向下取整(~~,>>,<<,>>>,|)
~
~1.2
// 1~~
1.8// 1
1.8>>
0// 1
1.14
<<
0// 1
1.14|0
// 1
1.14
>>>
0// 1 (>>>不可對負數取整)
2的倍數乘除法(<<,>>)
1
<<
2// 4 // 1的2進製左移2位,即乘2的2次方
8>>
2// 2 // 8的2進製右移2位,即除2的2次方
比較兩個數是否相等(^)
1^1
// 0!(
2^2)
// true
var n =8!
(n ^8)
// true
取相反數
var n =
1n =
~n +
1
複雜開關操作
// 適用於表單驗證等
var result =
0var rule =
result |= name3 // 設定name3為成功
result &=
~name3 // 設定name3為失敗
result ^= name3 // 取反,即是成功時改為失敗,反之亦然
result & rule.name3 // 判斷name3是否成功
result &
(rule.name3 | rule.name4)
// 判斷name3和name4是否同時成功
0和1的切換
var n =
1n ^=
1// 0
n ^=
1// 1
巧妙運用位運算
本文旨在通過兩道巧妙運用位運算的題,認識位運算的魅力 題意 給定兩個序列 a,b 求 a,b 的最長公共子串行 a b le 10 5 時限 5s 目前求任意兩序列的最長公共子串行,是沒有複雜度低於 o a cdot b 的演算法的 回顧經典的 o a cdot b f max f f f a i ...
程式中位運算的運用
一 許可權設定 第一步,先建立乙個列舉表示所有的許可權管理操作,接下來是許可權的運算等。常用的位運算主要有與 或 和非 比如 1 0 0,1 0 1,1 0 在設計許可權時,我們可以把許可權管理操作轉換為c 位運算來處理.第一步,先建立乙個列舉表示所有的許可權管理操作 flags public en...
js中位運算的運用
原文 js中位運算的運用 我們可能很少在程式設計中用位運算,如果沒深入學習,可能也很難理解。平時的數值運算,其實是要先轉換成二進位制再進行運算的,而位運算就是直接進行二進位制運算,所以位運算的執行效率肯定是更高的。下面通過一些例項來加深對位運算的理解。運算子我們都知道,只有兩個都為真,結果才為真。道...