ZH
我的工具

补码计算器(有符号/无符号整数转换)

在 8、16、32、64 位或任意位宽下,把整数与二进制补码、十六进制互相转换,并显示有符号值和无符号值、溢出情况和取值范围。

当位宽选择“自定义位宽”时使用。
二进制(补码)
1101 0110
十六进制
0xD6
八进制
0o326
有符号值
-42
无符号值
214
能否容纳于 8 位
Yes
反码表示
1101 0101
针对有符号值
原码(符号加绝对值)表示
1010 1010
针对有符号值
按位取反(~x)
0x29 = 41
取负(−x)
0x2A = 42
各位宽的范围
位宽常见类型有符号最小值有符号最大值无符号最大值
8 位int8_t / uint8_t · sbyte / byte-128127255
16 位int16_t / uint16_t · short / ushort-327683276765535
32 位int32_t / uint32_t · int / uint-214748364821474836474294967295
64 位int64_t / uint64_t · long / ulong-9223372036854775808922337203685477580718446744073709551615
128 位Int128 / UInt128 (.NET 7+), __int128-170141183460469231731687303715884105728170141183460469231731687303715884105727340282366920938463463374607431768211455
其他位宽下的相同值
位宽能容纳吗?二进制补码(十六进制)
8 位是0xD6
16 位是0xFFD6
32 位是0xFFFFFFD6
64 位是0xFFFFFFFFFFFFFFD6
我的工具 →
广告

计算机用补码存储负整数:同样的位,在有符号字节中可以表示 −1,在无符号字节中则表示 255。本转换器在 8、16、32、64、128 位或任意自定义位宽下,同时给出位模式的两种解读,以及二进制、十六进制和八进制形式,说明数值是能容纳还是会回绕,并附上较早的反码和原码(符号加绝对值)表示供对比。所有运算都使用精确的大整数,所以 64 位和 128 位的值不会被舍入。

使用方法

  1. 输入数字:像 -42 这样的十进制数,或十六进制/二进制/八进制位模式。
  2. 选择这个数字是用哪种形式书写的。
  3. 选择位宽——字节用 8,int 用 32,long 用 64,也可以自定义。
  4. 查看有符号值、无符号值、位模式以及溢出检查。

计算公式

位模式 = x mod 2ⁿ · 有符号值 = 位模式 ≥ 2ⁿ⁻¹ 时取 位模式 − 2ⁿ,否则取 位模式

n 为位宽。负数 x 变为 2ⁿ − |x|,等同于把 |x| 的各位取反再加 1。n 位有符号值的范围是 −2ⁿ⁻¹ 到 2ⁿ⁻¹ − 1,无符号值是 0 到 2ⁿ − 1。超出这两个范围的十进制数只保留最低的 n 位——与 C 或 Java 的强制转换产生的回绕相同。

示例

8 位的 −42:256 − 42 = 214,所以位模式是 1101 0110 = 0xD6,无符号字节把它读作 214。反码是 1101 0101,原码是 1010 1010。在 16 位下,同一个值是 0xFFD6,在 32 位下是 0xFFFFFFD6。

常见问题

为什么负数一侧的范围多一个?

0 占用了非负数位模式中的一个,所以 8 位有符号字节能表示 −128 到 127。−128 没有对应的正数:对它取负会溢出,结果仍是 −128。

怎样手工求补码的相反数?

把每一位取反再加 1。5 是 0000 0101;取反得 1111 1010;加 1 得 1111 1011,也就是 −5。

溢出时会发生什么?

硬件只保留最低的 n 位。无符号字节中的 300 变为 300 − 256 = 44。在 C 中,有符号溢出属于未定义行为,编译器不一定回绕;Java 和 C#(unchecked)则会回绕。

反码和原码现在用在哪里?

如今整数基本不再使用。原码保留在浮点数的符号位中,反码保留在互联网校验和(RFC 1071)中。

最后更新:

引用此工具
APA

kakaoCalc. (2026, November 8). 补码计算器(有符号/无符号整数转换). https://kakao.mobile/zh/tools/signed-unsigned-converter/

MLA

“补码计算器(有符号/无符号整数转换).” kakaoCalc, 8 Nov. 2026, kakao.mobile/zh/tools/signed-unsigned-converter/.

广告