这个计算器能做什么
本工具用于计算两个非负整数之间的三种基本按位逻辑运算——按位与(AND)、按位或(OR)和按位异或(XOR)。每个操作数都可以用十进制(10 进制)、十六进制(16 进制)、八进制(8 进制)、六进制(6 进制)或二进制(2 进制)输入。每种运算的结果会同时以这五种进制呈现,方便你根据实际需求直接读取。所有数值都按无符号整数处理,支持的完整范围为 \(0\) 到 \(2^{64} - 1\)。
使用方法
在 x 输入框中填入第一个数字,并选择它所采用的进制;用同样的方式填写第二个数字 y。进制选择只影响系统如何解析你输入的文本,运算始终基于底层的整数值进行。结果表格会按十进制、十六进制、八进制、六进制和二进制逐行列出 AND、OR 和 XOR 的运算结果。
公式原理
按位运算针对每个整数的二进制表示逐位进行处理。AND(与):仅当两个输入位都为 1 时,结果位才为 1。OR(或):只要至少有一个输入位为 1,结果位就为 1。XOR(异或):当且仅当两个输入位恰好有一个为 1 时,结果位才为 1——由于一个数与自身异或的结果为 0,XOR 非常适合用于奇偶校验和校验和(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{十六进制 } 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 运算会还原为 0,所以 XOR 是一种简单、可逆的方式,可用于检测单个比特位的变化并计算奇偶校验。