這個計算機的功能
本工具可在兩個非負整數之間執行三種最基本的位元邏輯運算——AND、OR 與 XOR。每個運算元都可以用十進位(base 10)、十六進位(base 16)、八進位(base 8)、六進位(base 6)或二進位(base 2)輸入。每項運算的結果都會同時以這五種進位制呈現,方便你依需求選用任一種格式閱讀。所有數值皆以無號(unsigned)方式處理,支援完整的 0 到 \(2^{64} - 1\) 範圍。
使用方式
在 x 欄位輸入第一個數字,並選擇它所使用的進位制;接著以相同方式輸入第二個數字 y。進位制選項只會影響文字的解析方式——實際運算永遠是針對底層的整數值進行。輸出表格會以十進位、十六進位、八進位、六進位與二進位各列出 AND、OR 與 XOR 的結果。
公式說明
位元運算是針對每個整數的二進位表示法,逐一比對每個位元位置進行的。AND 只在兩個輸入位元都是 1 時,結果位元才設為 1;OR 只要任一輸入位元為 1,結果位元就設為 1;XOR(互斥或)則在兩個輸入位元剛好只有一個為 1 時,結果位元才設為 1——由於一個值與自身做 XOR 結果為 0,因此 XOR 特別適合用於奇偶校驗(parity)與檢查碼(checksum)的計算。
$$\begin{gathered} X = \text{parse}\!\left(\text{x},\ \text{base}_x\right), \quad Y = \text{parse}\!\left(\text{y},\ \text{base}_y\right) \\[1.2em] \text{AND} = X \mathbin{\&} Y, \quad \text{OR} = X \mid Y, \quad \text{XOR} = X \oplus Y \end{gathered}$$
實際範例
以 \(x = 115\)、\(y = 234\)(皆為十進位)為例。換成二進位,\(115 = 0111\,0011\),\(234 = 1110\,1010\)。AND 得到 $$0110\,0010 = 98 = \text{十六進位 } 62 = \text{八進位 } 142 = \text{六進位 } 242 = \text{二進位 } 1100010$$ OR 得到 $$1111\,1011 = 251 = \text{十六進位 } \text{fb} = \text{八進位 } 373 = \text{六進位 } 1055$$ XOR 得到 $$1001\,1001 = 153 = \text{十六進位 } 99 = \text{八進位 } 231 = \text{六進位 } 413 = \text{二進位 } 10011001$$
位元真值表
位元運算對每一對位元獨立進行操作。下表顯示兩個輸入位元 \(A\) 和 \(B\) 的每一種可能組合,以及 AND (\(\&\))、OR (\(\mid\)) 和 XOR (\(\oplus\)) 的結果位元。
| A | B | A AND B (\(A \mathbin{\&} B\)) | A OR B (\(A \mid B\)) | A XOR B (\(A \oplus B\)) |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 0 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 |
簡單來說:AND 只在兩個位元都是 1 時才返回 1;OR 在至少一個位元是 1 時返回 1;XOR 在位元不同時返回 1。當兩個多位元的整數結合時,該運算應用於每個對齐的位元位置。例如,將 \(12 = 1100_2\) 和 \(10 = 1010_2\) 進行位元組合,得到 AND \(=1000_2 = 8\)、OR \(=1110_2 = 14\) 和 XOR \(=0110_2 = 6\)。
基數數字轉換表
在計算 AND、OR 或 XOR 之前,請確認您的運算元輸入的進位制正確。六進位是基數 6(數字 0–5);八進位是基數 8(數字 0–7);十六進位是基數 16(數字 0–9,然後是 A–F)。下表列出了十進位 0–16 在所有五個支援的進位制中的對應值。
| 十進位 (10) | 十六進位 (16) | 八進位 (8) | 六進位 (6) | 二進位 (2) |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 | 1 |
| 2 | 2 | 2 | 2 | 10 |
| 3 | 3 | 3 | 3 | 11 |
| 4 | 4 | 4 | 4 | 100 |
| 5 | 5 | 5 | 5 | 101 |
| 6 | 6 | 6 | 10 | 110 |
| 7 | 7 | 7 | 11 | 111 |
| 8 | 8 | 10 | 12 | 1000 |
| 9 | 9 | 11 | 13 | 1001 |
| 10 | A | 12 | 14 | 1010 |
| 11 | B | 13 | 15 | 1011 |
| 12 | C | 14 | 20 | 1100 |
| 13 | D | 15 | 21 | 1101 |
| 14 | E | 16 | 22 | 1110 |
| 15 | F | 17 | 23 | 1111 |
| 16 | 10 | 20 | 24 | 10000 |
您可以使用二進位 1100 轉換器驗證任何單一值在其他進位制中的對應值,該轉換器返回十進位 12。
定義與術語表
- 位元
- 數位資訊的最小單位,取值為 0 或 1。此計算機中的每個整數都被處理為位元序列。
- 位元運算
- 獨立應用於兩個運算元的每個對應位元的運算。AND、OR 和 XOR 是此處計算的三種組合運算。
- 基數(進位)
- 位置記數系統使用的相異數字個數。十進位的基數為 10,二進位基數為 2,八進位基數為 8,六進位基數為 6,十六進位基數為 16。每個數字位置代表基數的一次方冪。
- 無符號整數
- 沒有符號位的非負整數;所有位元都對大小有貢獻。此工具僅接受無符號值。
- 六進位
- 使用數字 0–5 的基數 6 記數法。位值是 6 的冪,例如 \(24_6 = 2\times6 + 4 = 16\)。
- 十六進位
- 使用數字 0–9 和字母 A–F 的基數 16 記數法(其中 A=10 … F=15)。每個十六進位數字清晰地映射到恰好四個二進位位元。
- 八進位
- 使用數字 0–7 的基數 8 記數法。每個八進位數字恰好映射到三個二進位位元。
- 遮罩
- 與位元運算一起使用的常數值,用於選擇、設定或清除特定位元——例如,與 \(0\text{F}_{16}\) 進行 AND 運算只保留低四位位元。
- 奇偶性
- 值中 1 位元個數的奇偶性。XOR 是奇偶性檢查的基礎:所有位元的 XOR 在奇偶性為奇數時等於 1,在偶數時等於 0。
常見問題
支援負數嗎?不支援。輸入值必須是非負的無號整數,本工具不處理二補數(two's complement)的符號運算。
如果輸入了無效的數字怎麼辦?超出所選進位制範圍的數字(例如在八進位中輸入「8」)會被忽略或視為 0,因此請務必確認進位制選擇是否正確。
為什麼檢查碼常用 XOR?因為把一連串位元組做 XOR、再用同樣的資料流做一次 XOR,結果會回到 0,所以 XOR 是一種簡單又可逆的方法,可用來偵測單一位元的變化並計算奇偶校驗。