原码、反码与补码
按 8、16、32 或 64 位计算每行十进制整数的原码、反码与补码。
本地处理
文件只在当前浏览器处理;关闭或清空后不保留。
输入文本
输入或粘贴要处理的文本
调整设置
可调整位宽
开始处理
在本机浏览器中处理,可随时取消
工具介绍
计算十进制整数在 8、16、32 或 64 位下的原码、反码和补码。适合学习计算机组成原理、做相关习题,或者在编程时确认一个负数在内存里的二进制形式。每行输入一个数,运行一次就能得到整列结果。
结果按每 4 位一组显示,并附上补码的十六进制,例如 8 位下 -5 的原码为 1000 0101,反码为 1111 1010,补码为 1111 1011(FB)。只支持十进制整数,计算在浏览器中完成。
使用步骤
- 在“输入文本”中每行输入一个十进制整数,也可以点击“使用示例”。
- 在“位宽”中选择“8 位”“16 位”“32 位”或“64 位”,默认为 8 位。
- 点击“运行”。
- 在预览中查看每个数的原码、反码、补码和补码十六进制,再下载为文本文件。
格式与限制
- 输入
- 文本
- 输出
- 纯文本
- 大小上限
- 1 MB
- 可调设置
- 位宽(8 位、16 位、32 位、64 位)
- 隐私
- 文件留在当前浏览器会话中,不上传文件字节。
- 费用
- 免费,无需注册
常见问题
为什么 -128 的原码和反码显示 n/a?
8 位的原码和反码只能表示 -127 到 127,-128 只有补码 1000 0000 这一种形式。其他位宽同理,最小的那个负数只有补码。
正数的原码、反码、补码有区别吗?
没有。正数和 0 的三种形式完全相同,只有负数才不同:反码是原码除符号位外按位取反,补码是反码再加 1。
提示数值超出范围怎么办?
每种位宽能表示的范围有限:8 位为 -128 到 127,16 位为 -32768 到 32767,32 位为 -2147483648 到 2147483647。超出范围会报错并停止运行,换用更大的位宽即可。
可以输入十六进制或小数吗?
不可以,只接受十进制整数,可以带正负号,数字中的空格和下划线会被忽略。十六进制、二进制等进制之间的转换请使用“进制转换”工具。
64 位会丢失精度吗?
不会。计算使用任意精度整数,-9223372036854775808 到 9223372036854775807 之间的数都能得到精确结果。
相关工具
进制转换
任意大小整数在 2 至 36 进制间转换(每行一个),可按 8 至 128 位补码处理有符号数。
IEEE 754 浮点数转换
查看十进制数的单精度或双精度位表示,或把十六进制、二进制位模式还原为数值(每行一个)。
字节进制与大小端转换
以字节为单位在十六进制、二进制、八进制、无符号或有符号十进制、Base64 与 UTF-8 文本之间转换,并可按 2、4、8 字节交换大小端字节序。
Base 系列编码
Base16、Base32、Base58、Base62、Base64、Ascii85、Z85 与 basE91 的编码和解码,可选择文本的字符集,或以十六进制表示原始字节。
Base64 转图片
把 Base64 或 data: URI 还原为图片等文件,类型由内容或 URI 判断。
字符集编码与乱码修复
以十六进制查看文本在 UTF-8、GBK、GB18030、Big5、Shift_JIS 等字符集下的字节,把十六进制还原为文本,或修复按错误字符集读取造成的乱码。