位運算的實踐運用

2021-10-25 05:04:42 字數 1129 閱讀 3360

判斷乙個數的奇偶(|)

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中位運算的運用 我們可能很少在程式設計中用位運算,如果沒深入學習,可能也很難理解。平時的數值運算,其實是要先轉換成二進位制再進行運算的,而位運算就是直接進行二進位制運算,所以位運算的執行效率肯定是更高的。下面通過一些例項來加深對位運算的理解。運算子我們都知道,只有兩個都為真,結果才為真。道...