時間能淡忘一切,只要時間夠久,即便是曾經最深入的記憶。網絡
按位取反,涉及到補碼等計算機知識,大學時學過,如今提起原碼、反碼、補碼,依稀有點影響,但具體的已淡忘的不留一絲痕跡。藉助網絡的力量,再次來記憶一遍。優化
在 js 中是經過 ~
符號進行按位取反操做的。具體的規則以下:code
補充:爲何要有補碼及補碼修正?由於計算機中減法是經過加一個負數處理的,而負數又是經過補碼保存的。目的就是爲了統一加法減法。原碼:效率
舉例:原理
~9 結果:-10
原碼:00001001
反碼:11110110
補碼:10001001
修正:10001010 1是負,加1修正
轉換:-0008020 -> 10計算機
~-9 結果:8
原碼:10001001
反碼:01110110
補碼:00001001
修正:00001000 0是正,減1修正
轉換:+0008000 -> 8時間
在 js 中運用:位運算的效率高於符號運算co
let str = 'wwr23'; if (str.indexOf('2') > -1)) {// 存在 } // 優化替換,原理 ~-1 // 0 ~0 // -1 ~1//-2 ~2//-3 只要不爲0都爲true if (~str.indexOf('2'))) {// 存在}