二进制计算器
快速示例:
算术 位运算
- 表达式
- 二进制
- 十进制
- 十六进制
- 十进制
- 二进制
二进制计算器可对两个二进制整数做加减乘除、取余,以及 AND、OR、XOR、NOT、左移、右移。结果同时给出二进制、十进制和十六进制。转换器可在二进制与十进制之间互转。本工具仅处理整数。
如何使用
四则运算与位运算
- 打开计算器页签。
- 值 1 只填写 0 和 1,最多 64 位。可带或不带前导 0。
- 选择运算:加、减、乘、除、取余,或 AND、OR、XOR、NOT、左移、右移。
- NOT 只需值 1,按当前位数逐位取反。
- 左移、右移的第二项填写十进制移位位数,范围 0 到 32。左移一位相当于乘以 2,右移一位相当于除以 2 并丢掉余数。
- 其余运算的值 2 同样只填 0 和 1。
- 点击计算。除法给出商,并附带十进制与二进制余数。
进制转换
- 打开转换器页签。
- 二进制转十进制:输入二进制整数后点转换。
- 十进制转二进制:输入非负整数后点转换。
什么是二进制
二进制是基数为 2 的计数系统,只用 0 和 1。每一位叫作一个比特。从右往左,第 k 位的权是 2 的 k 次方。例如 1101 等于 1×8 + 1×4 + 0×2 + 1×1 = 13。
| 十进制 | 二进制 |
|---|---|
| 0 | 0 |
| 1 | 1 |
| 2 | 10 |
| 3 | 11 |
| 4 | 100 |
| 5 | 101 |
| 6 | 110 |
| 8 | 1000 |
进制转换原理
十进制转二进制:除 2 取余
把十进制数不断除以 2,记下余数,直到商为 0。把余数从后往前排,就是二进制。例如 17:
- 17 ÷ 2 = 8 余 1
- 8 ÷ 2 = 4 余 0
- 4 ÷ 2 = 2 余 0
- 2 ÷ 2 = 1 余 0
- 1 ÷ 2 = 0 余 1
余数倒序写出 10001,即 17 的二进制。
二进制转十进制:按权展开
从左边最高位开始:当前值先乘 2,再加这一位。例如 100101:
- (0 × 2)+ 1 = 1
- (1 × 2)+ 0 = 2
- (2 × 2)+ 0 = 4
- (4 × 2)+ 1 = 9
- (9 × 2)+ 0 = 18
- (18 × 2)+ 1 = 37
所以 100101 等于十进制 37。
二进制四则运算法则
加法
- 0 + 0 = 0
- 0 + 1 = 1
- 1 + 0 = 1
- 1 + 1 = 0,并向高位进 1
- 1 + 1 + 1 = 1,并向高位进 1
例:1001 + 1011 = 10100。
减法
- 0 − 0 = 0
- 1 − 0 = 1
- 1 − 1 = 0
- 0 − 1 = 1,并向高位借 1。借来的 1 在当前位表示 2。
例:1100 − 1001 = 11。结果为负时,二进制前加负号。
乘法
- 0 × 0 = 0
- 0 × 1 = 0
- 1 × 0 = 0
- 1 × 1 = 1
按位乘再错位相加。例:101 × 11 = 1111,对应十进制 5 × 3 = 15。
除法
规则与十进制长除相同,不能除以 0。本工具做整数除法。例:1111 ÷ 10,商为 111,余数为 1。
位运算
- AND:对应位都是 1 时结果为 1,常用于按位屏蔽。1010 AND 1100 = 1000。
- OR:对应位有一个为 1 时结果为 1。1010 OR 1100 = 1110。
- XOR:对应位不同时结果为 1。1010 XOR 1100 = 0110。
- NOT:按输入位数把 0 变 1、1 变 0。NOT 1010 = 0101。
- 左移、右移:把所有位整体移动指定位数。
常见问题
为什么只能输入 0 和 1?
二进制每一位只能是 0 或 1。出现 2 到 9 或小数点都会报错。需要十进制输入时,请用转换器页签。
除法为什么没有小数?
当前按整数计算:给出商和余数,不输出小数二进制。
NOT 和编程语言里的按位取反一样吗?
本工具按输入的有效位数逐位翻转,而不是按机器字长做补码取反。这样更便于对照手算。