进制加减乘除
转换所有处理都在浏览器本地完成,数据不上传服务器
在二、八、十、十六进制下做四则运算。 不做溢出回绕。 有些十六进制计算器会把结果按 32 位或 64 位截断(`0xFFFFFFFF + 1` 得到 `0`)—— 那是在模拟机器字长,不是算术。一个计算器该先回答「这两个数加起来是多少」。需要掩码或回绕的场合请用二进制按位运算,那里有显式的位宽参数,取模这件事看得见。 除法给商和余数,不偷偷变成小数。 整数除法在世界各语言里有两种口径:向零取整(C 系、JavaScript 的 BigInt)与向下取整(Python)。`-7 ÷ 2` 在前者是 -3 余 -1、在后者是 -4 余 1 —— 两个答案都对,取决于你要哪一种。所以这里不选边:除不尽时把余数一起列出来。 前缀优先于所选进制。 写了 `0x` / `0o` / `0b` 就按它解析,哪怕与下拉框不一致 —— 否则 `0b1010 + 0xFF` 这种混用根本没法表达。
功能
- 四种运算:加、减、乘、除,支持负数
- 二、八、十、十六进制任选输入与输出进制,两者可以不同
- 前缀优先:`0b1010 + 0xFF` 这种混用靠前缀表达
- 除法给商,除不尽时附上余数(向零取整,余数与被除数同号)
- 任意大的整数都精确,`0xFFFFFFFF × 0xFFFFFFFF` 也不会截断
- 结果不是十进制时,另外附一个十进制读数省得心算
- 一行一个操作数,可以批量对同一个数做运算
- 输入支持 `_` 与空格作分隔符
使用方法
- 粘贴第一个操作数,一行一个
- 选输入进制、运算,填第二个操作数
- 需要时把结果进制改成另一种
- 点某一行的复制按钮取走结果
常见问题
- 为什么结果是负数,而不是回绕后的大数?
- 因为这个工具做的是算术,不是模拟机器字长。`0x00 - 1` 得到 `-0x1`,而不是 `0xFFFFFFFF`。回绕在真实系统里取决于字长(32 位、64 位、还是别的),工具替你选一个就是替你猜。要按固定位宽取模,用二进制按位运算:那里选了位宽之后,减法自然会在该位宽下回绕。
- 除法除不尽怎么办?
- 给出商与余数两个数,两个都是整数,都按你选的进制显示。比如十六进制下 `FF ÷ 10` = `F` 余 `F`(255 = 15 × 16 + 15)。这样做是因为「整数除法」有两种通行口径 —— 向零取整与向下取整,负数上会给出不同答案(`-7 ÷ 2` 是 -3 余 -1 还是 -4 余 1)。不选边、把余数交出来,谁都能用。
- 能算小数吗?
- 不能,两个原因。一是二进制里的 `0.1` 是无限循环小数,写出来只能是近似值;二是十六进制下的小数计算没有通行约定(小数点后几位算一位?)。整数四则运算覆盖了绝大多数真实需求(地址偏移、掩码、颜色值、协议字段),需要小数请用十进制的数值列表求和或普通计算器。
相关工具
进制转换
转换在二、八、十、十六、36、64 进制之间互转,六种结果一次全部给出,19 位的雪花 ID 也能一位不差。全部在浏览器本地完成。
二进制位运算
转换十种按位运算:与、或、异或、同或、与非、或非、非、左移、右移、位序逆序。结果同时给出十进、二进制与十六进制。
哈希计算
编码算出文本的 MD5、SHA-1、SHA-256 或 SHA-512 摘要,也可算老系统用的 MD4 与 MD2,中文按 UTF-8 字节计算。全部在本地完成。
时间戳转换
转换把 Unix 时间戳还原成日期时间,或反过来。秒 / 毫秒 / 微秒 / 纳秒自动识别,支持小数、负数与 Windows FILETIME。全部在浏览器本地完成。
日期计算
转换算两个日期之间相差多少天,或给一个日期加减若干天、周、月。日期用日历挑或直接粘贴,结束日期留空就与今天比较。全部在浏览器本地完成。
Cron 解析
转换把 cron 表达式逐字段讲成人话,算出接下来几次与上一次的执行时间;永远不会触发的表达式会当场说明原因。全部在浏览器本地解析。