二进制计算器

输入二进制数即可计算 AND/OR/XOR/NOT、左右移和加减乘除,结果同步给出二/十/十六/八进制、步骤和前导 0 显示约定。

只填 0 和 1,可用空格分组(如 1111 1111);不要带 0b 前缀、负号或小数点。

AND(按位与 &) 结果(二进制)
1000
十进制8
十六进制8
八进制10
二进制1000
运算步骤
  1. 对齐后逐位相与:两位都为 1 才得 1,否则为 0
  2. 1100 & 1010 = 1000
  3. 十进制:12 & 10 = 8

计算在浏览器本地完成,整数用 BigInt 高精度处理,32/64 位甚至更大的数字也不丢精度。

怎么用

  1. 选择运算上面一排选位运算:AND(按位与)、OR(按位或)、XOR(按位异或)、NOT(按位取反)、左移(<<)、右移(>>);下面一排选二进制算术:加、减、乘、除。选哪个,下方就出现对应的输入框。
  2. 填写操作数 A在「操作数 A」里写二进制数,只用 0 和 1,例如 1100。可以用空格分组(如 1111 1111)便于阅读,不要带 0b 前缀、负号或小数点。
  3. 填写第二个参数两数运算(与/或/异或/加减乘除)再填「操作数 B」;移位运算填「移位位数」(十进制,如 2);按位取反可选填「位宽」(如 8、16、32),留空则按 A 的有效位数取反。
  4. 读取结果与步骤工具即时给出二进制结果,并同步换算成十进制、十六进制、八进制;除法额外给出商和余数。下方「运算步骤」用文字解释这一步是怎么算出来的,整个计算用 BigInt 精确完成。

核心要点

二进制计算器把两个用 0/1 写成的数做位运算或算术运算。位运算「对齐后逐位算」, 算术运算「逢二进一 / 借一当二」,结果再换算成十/十六/八进制方便核对。 例如 1100 ^ 1010 的数值结果是 110,按 4 位对齐可写作 0110

  • 位运算:AND(&) 都为 1 才得 1;OR(|) 有 1 即 1;XOR(^) 不同为 1;NOT(~) 逐位翻转。
  • 移位:左移 << = ×2ⁿ(末尾补 0), 右移 >> = ÷2ⁿ 向下取整(丢末位)。
  • 算术1010 + 1011 = 10101(10+11=21); 除法给出商与余数。
  • 前导 0:除 NOT 指定位宽外,结果默认按数值展示;固定 8/16/32 位场景需按目标位宽补 0。
  • 精度:整数全程 BigInt,32/64 位及更大的数不丢精度。

原理与公式

计算机里的数用二进制(逢二进一,只用 0、1)表示。位运算把两个数的二进制位一一对齐,逐位按逻辑规则计算;算术运算则遵循和十进制一样的规则,只是进位/借位以 2 为单位。

按位逻辑运算

对每一对相同位置的比特:

  • AND(与 &):1&1=1,其余为 0 —— 用于「取出某些位」(掩码)。
  • OR(或 |):0|0=0,其余为 1 —— 用于「置位」(把某些位设为 1)。
  • XOR(异或 ^):相同为 0、不同为 1 —— 用于「翻转某些位」, 且 a ^ a = 0a ^ 0 = a
  • NOT(取反 ~):0→1、1→0 —— 需固定位宽(本工具默认取 A 的有效位数), 即在 n 位内的反码(一的补码):~a = (2ⁿ − 1) − a

1100 & 1010:逐位得 1&1, 1&0, 0&1, 0&0 = 1000(即 12 & 10 = 8)。

移位运算

左移 a << n:末尾补 n 个 0,值 = a × 2ⁿ。
右移 a >> n(逻辑右移):丢弃末尾 n 位,值 = ⌊a ÷ 2ⁿ⌋。
101 << 2 = 10100(5×4=20);10110 >> 2 = 101(22÷4=5)。

二进制算术:逢二进一

加法逐位相加、满 2 进 1;减法不够则借 1 当 2;乘法用移位相加的竖式; 除法用长除法给出商与余数。

1010 + 10110+1=11+1=10(写 0 进 1)…… 得 10101(10+11=21)。除法 1010 ÷ 11 = 11 …… 余 1(10÷3=3 余 1)。

精度与约定

操作数为非负二进制整数;位运算结果非负,减法可能为负(以「−绝对值」显示)。 全程用 BigInt 精确计算,支持任意大的二进制数,所有运算在浏览器本地完成。

常见问题

按位与(AND)、或(OR)、异或(XOR)、取反(NOT)分别怎么算?
它们把两个数「对齐后逐位」做逻辑运算。按位与 &:两位都是 1 才得 1,否则 0(1100 & 1010 = 1000)。按位或 |:任一位是 1 就得 1,两位都 0 才 0(1100 | 1010 = 1110)。按位异或 ^:两位不同得 1、相同得 0(1100 ^ 1010 = 110,按 4 位对齐可写作 0110),所以一个数异或自己等于 0。按位取反 ~:把每一位 0↔1 翻转,因为要固定位数,本工具默认按 A 的有效位数取反,也可指定 8/16/32 位(高位补 1)。
左移 << 和右移 >> 是什么?为什么等于乘除 2 的幂?
左移 n 位就是在二进制末尾补 n 个 0,数值放大到原来的 2ⁿ 倍:101(5) << 2 = 10100(20) = 5×4。右移 n 位是丢掉末尾 n 位(本工具按无符号逻辑右移、向下取整),数值缩小为原来的 1/2ⁿ:10110(22) >> 2 = 101(5) = ⌊22÷4⌋。因此左移常用来快速乘 2 的幂、右移用来快速除 2 的幂,在底层编程里比乘除法更快。
二进制加减乘除怎么手算?
规则和十进制一样,只是「逢二进一」。加法:逐位相加,满 2 就向高位进 1(1010+1011=10101,即 10+11=21)。减法:不够减就向高位借 1 当 2 用(1010−111=11,即 10−7=3)。乘法:用竖式,被乘数按乘数的每个 1 位左移后相加(110×101=11110,即 6×5=30)。除法:像长除法一样反复减去除数,得到商和余数(1010÷11=11 余 1,即 10÷3=3 余 1)。本工具会同时给出二进制结果和十进制核对值。
结果为什么带负号?减出负数的二进制怎么表示?
本工具的操作数都是非负二进制。位运算(与或非异或、移位)只对非负数有明确定义,所以它们的结果也非负。只有减法可能得到负数,例如 1(1) − 1010(10) = −9,这时结果用「负号 + 二进制绝对值」表示为 −1001,十进制显示 −9。若你需要的是补码表示(如 8 位补码里 −9 = 11110111),可先算出绝对值再按位取反加一,或用本站的进制/补码相关工具。
为什么二进制结果少了前导 0?需要补齐位宽怎么办?
AND、OR、XOR、加减乘除等结果默认按数值显示,会去掉不影响大小的前导 0;例如 1100 ^ 1010 的数值结果是 110,按 4 位对齐查看时可写成 0110。只有 NOT 这类必须依赖位宽的运算会使用「位宽」输入。若作寄存器、掩码或固定 8/16/32 位对照,先确定目标位宽,再把结果左侧补 0 到对应长度。
支持很大的二进制数吗?计算精确吗?
支持且精确。工具内部用 BigInt(大整数)计算,不经过 JavaScript 浮点数,因此 32 位、64 位甚至上百位的二进制数做与或异或、移位、加减乘除都不会丢精度(例如两个 2⁴⁰ 相乘精确得到 2⁸⁰)。所有计算都在你的浏览器本地完成,不会上传数据。
为什么还要看十六进制和八进制?和二进制什么关系?
因为 16=2⁴、8=2³,它们和二进制之间可以「分组」直接换,是二进制的速记写法。二进制每 4 位对应 1 个十六进制位(1111 1111₂ = FF₁₆),每 3 位对应 1 个八进制位(11 010₂ = 32₈)。程序里内存地址、颜色值(#FF0000)、位掩码常用十六进制书写,比一长串 0/1 更好读。本工具把每次运算结果同时给出二/十/十六/八进制,方便你在不同场景取用。若只想做进制互转,可用「进制转换计算器」。

来源与更新

位运算、移位与二进制算术的定义依据(检索日期 2026-07-18):

  • 按位运算符(AND/OR/XOR/NOT/移位)的语义,参考 MDN Web Docs Bitwise operators
  • 二进制记数法与位运算概念,参考 Wolfram MathWorld Binary
  • 位运算、掩码与移位的工程用法,参考维基百科 Bitwise operation

本工具为纯数学/位运算计算,不含税率、利率等会随政策变化的参数,结果以通用定义为准。 内容经本站编辑整理与核对,仅供学习与参考。

最近更新:2026-07-18

本工具按通用数学与计算机位运算定义计算,操作数为非负二进制整数,结果为精确值,供学习与日常参考。