異或運算 HashMap位運算你可知一二

2021-10-16 09:59:51 字數 695 閱讀 7491

我們平時在寫**過程中用的位運算操作比較少,因為我們更關注於可讀性而不是效能,如果為了效能而使用較多的位運算,我想我們的同事會瘋掉。但在框架里位運算卻非常常見,因為框架的效能是我們關注的點。下面就來一起回顧一下常見的位運算操作:

<< : 左移運算子,num << 1,相當於num乘以2  低位補0

>> : 表示右移,如果該數為正,則高位補 0,若為負數,則高位補 1。

>>> : 表示無符號右移,也叫邏輯右移,即若該數為正,則高位補 0,而若該數為負數,則右移後高位同樣補 0。

% : 模運算 取餘

^ : 位異或 第乙個運算元的的第n位於第二個運算元的第n位相反,那麼結果的第n為也為1,否則為0

& : 與運算 第乙個運算元的的第n位於第二個運算元的第n位如果都是1,那麼結果的第n為也為1,否則為0

| : 或運算 第乙個運算元的的第n位於第二個運算元的第n位 只要有乙個是1,那麼結果的第n為也為1,否則為0

~ : 非運算 運算元的第n位為1,那麼結果的第n位為0,反之,也就是取反運算(一元操作符:只操作乙個數)

static final int hash(object key) {

int h;

return (key == null) ? 0 : (h = key.hashcode()) ^

位運算 異或運算

今天刷題時遇到乙個題,本以為是暴力 大模擬,結果看完別人的ac 後人都傻了,竟然是位運算。其中用到了異或 這種運算子。先上原題連線 傳送門 題目意思很好理解,有無限多個路燈,編號為1.2.3 剛開始時都是關著的,每次對一盞燈的操作都會改變它的狀態 即開變成關,關變成開 每次操作會給你乙個實數a和乙個...

HashMap位運算你可知一二

我們平時在寫 過程中用的位運算操作比較少,因為我們更關注於可讀性而不是效能,如果為了效能而使用較多的位運算,我想我們的同事會瘋掉。但在框架里位運算卻非常常見,因為框架的效能是我們關注的點。下面就來一起回顧一下常見的位運算操作 左移運算子,num 1,相當於num乘以2 低位補0 表示右移,如果該數為...

異或 位運算

powered by ab in 局外人 題意 求兩個陣列每個數之間的異或和。如果要o n 2 o n 2 o n2 遍歷,資料範圍很大,肯定會t tt。那麼就要想個別的辦法。我們可以統計分別 a aa,b bb 陣列每一位 0,1 0,10,1 個 數,分別計算每位的貢獻即可。如何實現?inclu...