原码、反码与补码计算器
查看有符号整数在 8、16 或 32 位下的原码、反码和补码形式。
Bit width
这个计算器是如何工作的?
输入有符号整数和位宽,并排查看其原码、反码和补码的二进制表示。正数三者相同;负数各异。原码和反码各有两个零(+0 和 -0),而补码只有一个唯一的零,这使补码成为现代计算机的标准编码。
公式
How this is calculated
输入有符号整数 v 并选择位宽 w(8、16 或 32)。将 |v| 写成二进制,然后从中构建三种经典有符号编码。原码将最高有效位用作纯符号标志(0 表示正,1 表示负),在其余 w-1 位中存储 |v|,因此可表示的幅度范围为 0 到 2^(w-1) - 1。
反码将正数保持为其普通无符号二进制,将负数表示为在 w 位内翻转 |v| 的每一位,等于 (2^w - 1) - |v|。补码正数不变,但将负数表示为 2^w - |v|,恰好比反码模式多 1。将补码模式作为无符号数读取,负数得到 2^w - |v|。
关键边界情况是零:原码和反码都有两种不同的零位模式(+0 = 全零,-0 = 符号位置 1 或全一),而补码只有唯一的零,这也是补码成为现代硬件主流选择的原因。本工具将 |v| 限制在 2^(w-1) - 1 以内,使值在三种编码中均能表示;超出范围的值(包括最小负补码值 -2^(w-1))将报告为超出范围。
常见问题
对于非负值,原码、反码和补码都将数字以前导 0 符号位存储为普通无符号二进制,因此模式相同。只有对负数,三者才会产生差异。
两种方案都能表示 +0(全零)和 -0(原码中符号位置 1,反码中全一)。有两种零编码会使比较和算术复杂化,这是补码(只有一个零)更受青睐的原因之一。
补码可以存储 -2^(w-1),但原码和反码不能,因为它们的幅度字段最多只能容纳 2^(w-1) - 1。为了使三种编码可比较,本计算器将 |v| 限制在 2^(w-1) - 1 以内。
也称为
TG we-Calculate Editorial Team. (2026). 原码、反码与补码计算器 [Online calculator]. TG we-Calculate. https://we-calculate.com/zh/calculator/ones-complement-sign-magnitude-calculator
TG we-Calculate Editorial Team. "原码、反码与补码计算器." TG we-Calculate. 2026. https://we-calculate.com/zh/calculator/ones-complement-sign-magnitude-calculator.
TG we-Calculate Editorial Team, "原码、反码与补码计算器," TG we-Calculate, 2026. [Online]. Available: https://we-calculate.com/zh/calculator/ones-complement-sign-magnitude-calculator
@misc{wecalculate_ones_complement_sign_magnitude_calculator, title = {原码、反码与补码计算器}, author = {{TG we-Calculate Editorial Team}}, howpublished = {\url{https://we-calculate.com/zh/calculator/ones-complement-sign-magnitude-calculator}}, year = {2026}, note = {TG we-Calculate} }
这个计算器对您有帮助吗?
