⚡ BitCraft-S

v260212.17
结构支持版 - 精准位操作工具

BitCraft-S 是一款强大的位操作计算器,支持结构定义。它提供可视化位编辑、数学运算和高级的结构字段管理功能,适合硬件工程师、协议开发人员和底层开发者使用。

🚀 快速功能

可视化位编辑器
点击任何位来切换 0/1
结构支持
定义和编辑位字段结构
表达式计算器
使用变量和运算符进行计算
智能显示格式
自动识别 IPv4、MAC、IPv6 格式
任意位宽度
支持 1-1024 位,不受限于 4 的倍数
双重位范围
显示全局和字段相对范围

📝 基本操作

核心 变量赋值
创建变量并赋值。支持 HEX、DEC 和 BIN 格式。
示例:
>>> A = 100 A updated >>> B = 0x32 B updated >>> C = 0b11010 C updated // 查询变量 >>> A A = 0x00000064 (100)
新版 任意位宽度
创建任意位宽度(1-1024 位)的变量,不受限于 4 位的倍数。可使用快速按钮设置常见宽度,或使用「Set」按钮自定义数值。
命令行语法: 变量:位数 = 值
>>> A:5 = 0x1F A (5 位) = 0x1F >>> B:13 = 0x1ABC B (13 位) = 0x1ABC // 数值会自动截断到位宽 >>> C:7 = 0xFF C (7 位) = 0x7F // 0xFF & 0x7F = 0x7F
快速宽度按钮(于界面中):
// 点击这些按钮可立即更改位宽度: [128] [96] [64] [48] [32] [16] [Set] // 常见用途: [128] → IPv6 地址、UUID [96] → 部分加密密钥 [64] → long、double、时间戳 [48] → MAC 地址 [32] → int、IPv4 地址 [16] → short、端口号 // 点击 [Set] 按钮自定义位宽度 (1-1024) [Set] → 弹出窗口 → 输入:13 → 创建 13 位变量
新版 表达式计算
使用变量、数字和运算符进行计算。支持算术、位和移位运算。
算术运算:
>>> A = 100 >>> B = 0x32 >>> C = A + B + 0x1 C = 0x00000097 (151) >>> D = A * 2 - B D = 0x00000096 (150)
位运算:
>>> E = A & 0xFF E = 0x00000064 (100) >>> F = A | B F = 0x00000072 (114) >>> G = A ^ B G = 0x00000052 (82)
移位运算:
>>> H = 0x10 << 2 H = 0x00000040 (64) >>> I = 0xFF >> 4 I = 0x0000000F (15) >>> J = (A << 1) + B J = 0x000000FA (250)
核心 位范围操作
提取或修改变量中的特定位范围。
语法: 变量[高位:低位]
>>> A = 0x12345678 // 提取位 [23:16] >>> A[23:16] A[23:16] = 0x34 (52) // 修改位 [15:8] >>> A[15:8] = 0xAB A[15:8] updated // A 变为 0x1234AB78

🏗️ 结构支持

高级 结构定义
使用命名字段定义位字段结构。支持两种语法样式和两种字段分隔符(逗号或分号)。
语法一:宽度样式
>>> S{A:8, B:16, C:8} = 0x12345678 S created.
语法二:范围样式
>>> T{A[31:24], B[23:8], C[7:0]} = 0x12345678 T created.
替代方案:分号分隔符
>>> U{A:8; B:16; C:8} = 0x12345678 U created. >>> V{A[31:24]; B[23:8]; C[7:0]} = 0x12345678 V created. // 逗号和分号都可作为字段分隔符
复杂结构示例:
>>> IP{VER:4, HDL:4, DSCP:6, ECN:2, TLEN:16, ID:16, FLAG:3, FRAG:13, TTL:8, PROTO:8, CKS:16, SIP:32, DIP:32} = 0x451C00140000000000007F000001E0000001 IP created. // 总计:160 位(IPv4 头部)
高级 字段访问与修改
使用点号标记法读取和写入个别结构字段。
字段查询:
>>> IP.SIP IP[31:0].SIP[31:0] = 0x7F000001 (2130706433) [127.0.0.1] >>> IP.VER IP[3:0].VER[3:0] = 0x4 (4) // 格式:结构[全局范围].字段[字段范围] = HEX (DEC) [特殊格式]
字段赋值:
>>> IP.SIP = 0xC0A80001 IP[31:0].SIP[31:0] = 0xC0A80001 (was 0x7F000001) >>> IP.TTL = 64 IP[7:0].TTL[7:0] = 0x40 (was 0x0)
字段表达式:
>>> IP.SIP = 0x7F000001 >>> A = IP.SIP + 1 A = 0x7F000002 >>> B = IP.SIP & 0xFF B = 0x00000001
新版 智能字段显示与特殊格式
字段根据其位宽度自动以特殊格式显示:
  • 32 位 → IPv4 地址
  • 48 位 → MAC 地址
  • 128 位 → IPv6 地址
所有字段都显示 HEX 和 DEC 值,以及双重位范围(全局和字段相对)。
IPv4 地址(32 位):
>>> IP{..., SIP:32, DIP:32} = ... >>> IP.SIP IP[31:0].SIP[31:0] = 0xC0A80001 (3232235521) [192.168.0.1] >>> IP.DIP IP[31:0].DIP[31:0] = 0x08080808 (134744072) [8.8.8.8]
MAC 地址(48 位):
>>> ETH{DST:48, SRC:48, TYPE:16} = ... >>> ETH.SRC ETH[47:0].SRC[47:0] = 0x001122334455 (18838586676309) [00:11:22:33:44:55] >>> ETH.DST ETH[47:0].DST[47:0] = 0xFFFFFFFFFFFF (281474976710655) [FF:FF:FF:FF:FF:FF]
IPv6 地址(128 位):
>>> IPv6{ADDR:128} = 0x20010DB885A3000000008A2E03707334 >>> IPv6.ADDR IPv6[127:0].ADDR[127:0] = 0x20010DB8... (...) [2001:db8:85a3:0:0:8a2e:370:7334]
点击字段名称查询:
// 在界面中,点击视觉显示中的任何字段名称 [点击 "SIP"] → 自动执行:IP.SIP IP[31:0].SIP[31:0] = 0x7F000001 (2130706433) [127.0.0.1]
新版 字段 HEX 输入与表达式
直接在字段的 HEX 输入框中输入表达式。结果会自动截断至字段宽度。
在界面中:
// 字段 "SIP" 原始值:0xA1 // 在 HEX 输入框中输入: 0xA1 << 2 // 结果:0x284(自动截断至字段宽度) 0xA1 + 0x10 // 结果:0xB1 0xFF >> 4 // 结果:0x0F IP.DIP & 0xFF // 可以引用其他字段! (0x12 << 4) | 0x34 // 复杂表达式也可以工作
自动截断:
// 字段宽度:8 位(掩码 = 0xFF) 0x1234 // 存储为:0x34 // 字段宽度:4 位(掩码 = 0xF) 0xFF // 存储为:0xF // 字段宽度:16 位 0x1234 << 5 // 结果:0x4680(0x24680 被截断)
高级 可视化字段编辑
每个结构字段显示:
  • 字段名称与字段内的 MSB/LSB(相对于字段,而非全局)
  • 可编辑的 HEX 值(支持表达式)
  • 可点击的位按钮,对齐至上方全局位
字段显示结构:
┌─────────────────┐ │ 4 字段名称 0 │ ← 标题(字段内的 MSB/LSB) ├─────────────────┤ │ 0x12 │ ← HEX 输入(支持表达式) ├─────────────────┤ │ 1 0 0 1 0 │ ← 位按钮(点击切换) └─────────────────┘ // 示例:5 位字段 // MSB = 4(而非全局位 28) // LSB = 0(对于字段内始终为 0)
完美对齐:
// 全局位行: │0│0│0│1│0│0│1│0│0│0│1│1│ ... // 字段 A 位(对齐!): │0│0│1│ // 字段 B 位(对齐!): │1│0│0│1│0│ // 每个字段位都与上方的全局位完美对齐

⚡ 高级功能

核心 可视化位编辑器
点击视觉显示中的任何位来切换 0 和 1。对全局位和字段内位都有效。
使用方法:
// 创建变量 >>> A = 0x0 // 点击位 0 → A 变成 0x1 // 点击位 4 → A 变成 0x11 // 再次点击位 0 → A 变成 0x10 // 对于结构,点击字段位来修改该特定字段
核心 运算与应用
使用运算下拉菜单和「Go」按钮对变量应用位运算和算术运算。
可用的运算:
移位: << (左移) >> (右移) 算术: + - * / % 位: & | ^ ~ (NOT)
示例:
// 1. 创建变量 A = 0x10 // 2. 选择运算:<< // 3. 输入参数:2 // 4. 点击「Go」 // 结果:A = 0x40
核心 多种数字格式
以 HEX、DEC 或 BIN 格式输入和显示数值。
输入格式:
>>> A = 0x1A // 十六进制(前缀:0x) >>> B = 26 // 十进制(无前缀) >>> C = 0b11010 // 二进制(前缀:0b) // 以上三个都代表相同数值:26
显示:
// 每个变量显示: - 标题:HEX 值(可点击复制) - 主体:DEC 值(可点击复制) - 网格:HEX 半字节和二进制位
核心 大数支持
处理最多 1024 位(256 个半字节)的数值。适合加密密钥、IPv6 地址和大型数据结构。
示例:
// IPv6 地址(128 位) >>> IPv6 = 0x20010DB885A3000000008A2E03707334 // 256 位数字 >>> BigNum:256 = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF // 使用「Set」按钮设置自定义宽度 // 支持 1-256 个半字节(4-1024 位)
核心 持续存储
所有变量、结构及其状态都会自动存储至浏览器 localStorage。您的工作会在页面重新加载后保留。位操作期间会保持滚动位置,确保流畅的编辑体验。
功能:
✓ 每次变更自动存储 ✓ 重新加载时恢复 ✓ 记住滚动位置(水平和垂直) ✓ 位切换操作时保持视图位置 ✓ 存储运算状态 ✓ 点击「RESET」按钮清除所有数据
核心 流畅编辑体验
BitCraft-S 在所有操作期间保持您的视图位置,确保即使有多个大型对象也能有流畅的编辑体验。
视图位置维护:
// 使用多个对象: >>> A = 0x1234 >>> B = 0x5678 >>> C = 0x9ABC >>> D = 0xDEF0 // 向下滚动到对象 D // 点击 D 中的任何位 // ✓ 视图停留在 D(不会跳回顶部) // 水平滚动查看 MSB 位 // 切换任何位 // ✓ 保持水平位置
优点:
✓ 编辑位时视图不会跳动 ✓ 水平和垂直滚动都保持 ✓ 流畅的多对象工作流程 ✓ 专注于您正在处理的部分 ✓ 适用于大型结构(160+ 位)

💡 提示与技巧

键盘快捷键
Enter 执行命令或应用字段编辑 Esc 清除命令输入 点击 切换位、复制数值
快速复制
点击任何 HEX 或 DEC 值即可复制到剪贴板。
右对齐显示
位网格默认为右对齐,最低有效位(LSB)显示在右侧。对于宽结构,向左滚动可查看最高有效位(MSB)。
常见用途
网络协议头部:
>>> TCP{SRC:16, DST:16, SEQ:32, ACK:32, ...} = 0x...
硬件寄存器:
>>> STATUS{READY:1, ERROR:1, BUSY:1, RESERVED:29} = 0x...
位掩码:
>>> MASK = 0xFF00 >>> VALUE = DATA & MASK
标志管理:
>>> FLAGS{READ:1, WRITE:1, EXEC:1, RESERVED:29} = 0x5 >>> FLAGS.WRITE = 1 // 设置写入标志