BinaryFlow
在 2 到 36 的任意进制之间转换,点击单个位翻转它,把负数按 8 到 64 位的二补数来读,并把浮点数拆成符号、指数和尾数。不会截断,也不会离开你的浏览器。
了解使用方法点击任意一位即可翻转它。
全部按你选定的位宽用 BigInt 计算,不会像 JavaScript 运算符那样被悄悄截断到 32 位。
使用方法
1用任意进制输入
支持 2 到 36 进制,负号、0x 前缀和分组空格都能识别。
2指定它有多宽
8、16、32、64 位或不限。有符号值会转成二补数,所以 −42 变成 0xD6。
3手动翻转每一位
点击网格中的任意一位,或按该位宽执行 AND、OR、XOR、NOT 和移位。
4同时读到每一种形式
二进制、八进制、十进制、十六进制、自定义进制,以及两种字节序下的原始字节。
它到底能做什么
没有大小上限
全程使用 BigInt,300 位的数字也能精确转换,不会在超过 2^53 后失真。
有符号与二补数
在你选定的位宽下处理负数,并把存储的位与有符号值并排显示。
拆开看的 IEEE-754
符号、指数与尾数分色显示,还有浮点数真正存下的精确十进制值。
2 到 36 的任意进制
不止常见的四种。短 ID 用 36 进制,好奇的话还有 3 进制。
任何东西的字节
四种文本编码,以及你拖入的任意文件的十六进制转储 — 只有你点了才会读取。
从不离开页面
所有转换都在你的浏览器中完成。既不上传,也不保存。
常见问题
我的数据会被发送到服务器吗?+
不会。所有转换,包括你拖入文件的十六进制转储,都在浏览器内完成。既不上传,也不会在两次访问之间保存。
可以用哪些进制?+
输入和额外的输出列都支持 2 到 36 的任意进制。大于 9 的数位用字母 a 到 z 表示,与 parseInt 和 BigInt.toString 的约定一致。
为什么 −42 显示成 0xD6?+
因为在 8 位下,负数以二补数形式存储。工具会同时给出同一组位的两种读法:无符号是 214,有符号是 −42。把位宽改成 16 或 32 位,十六进制也会相应变长。
浮点视图能告诉我什么?+
它把存储的 32 或 64 位拆成符号、指数和尾数,并打印这些位所表示的精确十进制值,而不是 JavaScript 打印的简写形式。这样你就能看到 0.1 实际上是 0.1000000000000000055511151231257827…。
可以直接编辑这些位吗?+
可以。网格里的每一位都是按钮 — 点击即可翻转,其他所有视图会同步更新。你还能在选定位宽下执行 AND、OR、XOR、NOT 和移位,全部用 BigInt,不会被削到 32 位。