tbtoolbaba

位运算/掩码计算器

可视化每一位的位运算工具,支持AND/OR/XOR/NOT/移位,掩码生成与位域提取。嵌入式寄存器操作利器。

相关工具

使用说明

如何使用位运算/掩码计算器

  1. 选择位宽(8/16/32/64 位)。
  2. 在"操作数 A"中输入第一个数值(支持十进制、0x十六进制、0b二进制前缀)。
  3. 根据需要输入"操作数 B"(AND/OR/XOR 需要两个操作数,NOT/移位只需一个操作数)。
  4. 选择位操作(AND/OR/XOR/NOT/左移/逻辑右移/算术右移)。
  5. 查看位可视化网格和多种进制的结果。

支持的操作

操作 符号 说明 需要 B
与 AND & 对应位都为1时结果为1
或 OR | 对应位任一为1时结果为1
异或 XOR ^ 对应位不同时结果为1
非 NOT ~ 每位取反
左移 SHL << 左移n位,低位补0 移位量
逻辑右移 >>> 右移n位,高位补0 移位量
算术右移 >> 右移n位,高位补符号位 移位量

快捷操作

  • 设置/清除/翻转位:对操作数 A 的指定位置1、清0或翻转
  • 生成掩码:指定起止位范围,生成掩码值到操作数 B
  • 提取位域:从操作数 A 的指定范围提取位域值

输入格式

支持以下输入格式:

  • 十进制:25565535
  • 十六进制:0xFF0xFFFF
  • 二进制:0b11111111

位可视化

位网格以字节为单位分组显示(每8位一组),每个方格显示对应位的值(0或1)。结果位高亮显示,便于直观理解位运算效果。

典型应用场景

  • 寄存器操作:设置/清除 MCU 外设寄存器的配置位
  • 状态位检查:用 AND 和掩码检查特定状态标志
  • 数据打包:用 OR 和移位将多个字段合并为一个寄存器值
  • 位域提取:从 ADC 数据寄存器中提取转换结果
  • 引脚控制:翻转 GPIO 输出寄存器的特定位

注意事项

  • 使用 JavaScript BigInt 支持真正的 64 位运算
  • 所有计算在浏览器本地完成,数据不会上传
  • 移位操作会进行位宽掩码,防止溢出

常见问题

位运算有什么用途?

位运算广泛应用于嵌入式开发中:设置/清除寄存器特定位、读取状态标志、位域提取(如从ADC寄存器提取转换值)、掩码生成等。相比算术运算,位运算更高效,直接操作硬件寄存器。

算术右移和逻辑右移有什么区别?

算术右移(>>):高位用原符号位填充,保持有符号数的符号。逻辑右移(>>>):高位填0。例如0x80(8位有符号数-128)算术右移3位得0xF0,逻辑右移3位得0x10。

为什么用BigInt而不是普通数字?

JavaScript普通数字(Number)最多精确表示53位整数,位运算限制在32位。使用BigInt支持真正的64位运算,适合64位寄存器和总线操作。

什么是掩码(Mask)?

掩码是用于选择或修改特定比特位的位模式。例如掩码0x0F选择低4位,掩码0xF0选择高4位。常用于读取或修改寄存器的特定位域。

数据会上传吗?

不会。纯浏览器本地计算,所有运算在您的设备上完成,输入数据不会离开浏览器。

更新记录

  • 2026-07-01v1.0.0首次发布:支持8/16/32/64位位宽,AND/OR/XOR/NOT/移位操作,可视化位网格,掩码生成与位域提取,BigInt 64位支持。