位元運算計算器 - AND、OR、XOR、NOT、位移操作
以十進位、二進位與十六進位輸入/輸出,立即執行整數位元邏輯運算。
選擇一種運算,並以十進位、二進位或十六進位輸入數值,即可計算位元運算結果。
位元運算計算器 - AND、OR、XOR、NOT、位移操作
以十進位、二進位與十六進位輸入/輸出,立即執行整數位元邏輯運算。
關於位元運算計算器
位元運算是直接作用於整數二進位表示的基礎計算操作。它們不會把數字視為整體,而是逐一檢查並獨立操作每個位元。這種底層控制讓它們在系統程式設計、嵌入式開發、密碼學與效能關鍵演算法中都不可或缺。
AND 運算 (&) 會在兩個運算元對應位都為 1 時輸出 1。它常用來遮罩特定位元,例如 `value & 0xFF` 可以擷取任何整數的最低 8 位。OR 運算 (|) 只要任一運算元的對應位為 1,就會把該位設為 1,因此很適合合併旗標與設定指定位元。XOR 運算 (^) 只有在兩個輸入位不同時才輸出 1,因此非常適合切換位元、檢查相等性以及某些加密演算法。
NOT 運算 (~) 會反轉運算元的每一位。在 JavaScript 的 32 位元有號整數模型中,`~n` 等於 `-(n + 1)`。為了方便理解,結果會以無號 32 位元二進位字串顯示。左移 (<<) 會將所有位元向左移動指定的位數,相當於乘以 2 的冪。右移 (>>>) 會將所有位元向右移動,相當於除以 2 的冪並取整。
在現代硬體上,位元運算通常只需一個 CPU 時脈週期即可完成,因此比等價的算術運算快得多。這也是它們經常出現在雜湊函式、檢查碼演算法、圖形中的顏色打包(將 RGBA 通道儲存在單一 32 位元整數中)、作業系統權限旗標,以及網路協定實作中的原因。
這個計算器支援十進位(基底 10)、二進位(基底 2)與十六進位(基底 16)輸入,並會同時回傳三種格式的結果,方便你無須手動轉換就能交叉比對表示方式。所有計算都使用與 ECMAScript 規範一致的 JavaScript 32 位元整數位元運算語義。
位元運算範例
常見位元運算範例,展示輸入值以及十進位和二進位結果。
| 運算 | 結果(十進位) | 二進位表示 |
|---|---|---|
| 12 AND 10 | 8 | 1100 & 1010 = 1000 |
| 12 OR 10 | 14 | 1100 | 1010 = 1110 |
| 12 XOR 10 | 6 | 1100 ^ 1010 = 0110 |
| NOT 5 | -6 | ~00000101 = 11111010(有號 32 位元) |
| 3 LEFT SHIFT 2 | 12 | 011 << 2 = 1100(乘以 4) |
| 24 RIGHT SHIFT 3 | 3 | 11000 >>> 3 = 00011(除以 8) |
如何使用位元運算計算器
- 選擇你要執行的位元運算:AND、OR、XOR、NOT、左移或右移。
- 選擇與你的數字相符的輸入格式:十進位、二進位或十六進位。
- 在「第一個數字」欄位中使用所選格式輸入第一個數字。
- 對於二元運算(AND、OR、XOR、位移),在「第二個數字 / 位移位數」欄位中輸入第二個數字或位移位數。
- 按下「計算」,即可同時查看十進位、二進位與十六進位結果。
位元運算計算器常見問題
什麼是位元 AND 運算?
位元 AND 會比較兩個數字中每一對對應位元,只有當兩個位元都為 1 時才輸出 1,否則輸出 0。例如,12 AND 10 的二進位結果是 1100 & 1010 = 1000,十進位等於 8。它通常用來遮罩或擷取特定位元。
位元 XOR 是如何運作的?
位元 XOR(exclusive OR)在兩個輸入位元不相同時輸出 1,相同時輸出 0。例如,12 XOR 10 是 1100 ^ 1010 = 0110 = 6。XOR 常用於加密、檢查碼,以及在不影響其他位元的情況下切換特定位元。
NOT 運算會對數字做什麼?
位元 NOT(~)會反轉運算元的所有位元。在 32 位元有號整數運算中,~n 等於 -(n + 1)。因此 ~5 = -6,~0 = -1。這個計算器會將結果顯示為無號 32 位元二進位字串,以清楚呈現所有翻轉後的位元。
左移和右移有什麼不同?
左移(<<)會依指定位數把所有位元往較高位移動,空出的位元以 0 補齊。這相當於乘以 2 的移位次方。右移(>>>)會把位元往較低位移動,並以 0 補齊,相當於除以 2 的冪並取整。
什麼時候該使用十六進位輸入?
當你處理記憶體位址、色彩代碼(例如紅色的 0xFF0000)、網路遮罩,或文件與原始碼中通常以十六進位表示的值時,十六進位非常方便。每個十六進位數字正好代表 4 位元,因此它是緊湊且易讀的二進位資料表示。
為什麼位元運算在程式設計中很重要?
位元運算只需一個 CPU 週期即可執行,因此速度極快。它們在系統程式設計中用於設定硬體暫存器,在圖形處理中用於打包 RGBA 顏色,在密碼學中用於加密演算法,在遊戲開發中用於緊湊儲存旗標。理解它們是電腦科學的基礎。