首页  > 教育解读  > 一个占有n位的二进制有什么符号

一个占有n位的二进制有什么符号

2025-05-10 11:46:31
面试李组长
面试李组长已认证

面试李组长为您分享以下优质知识

一个占有n位的二进制数可以表示有符号数和无符号数,具体区别如下:

一、无符号数表示

无符号数仅用于表示非负整数,其表示范围为:

$$0 leq text{数值} < 2^n$$

例如:

8位无符号数范围是$$0 sim 255$$

16位无符号数范围是$$0 sim 65535$$

二、有符号数表示

有符号数用于表示正数、负数和零,采用补码形式表示,其表示范围为:

$$-2^{n-1} leq text{数值} leq 2^{n-1} - 1$$

例如:

8位有符号数范围是$$-128 sim 127$$

16位有符号数范围是$$-32768 sim 32767$$

补码表示说明

原码:

首位为符号位(0表示正数,1表示负数),其余位表示数值。例如,+5的原码为00000101,-5的原码为10000101。

反码:

正数的反码与原码相同,负数的反码是原码除符号位外按位取反。例如,-5的反码为11111010。

补码:

反码加1。例如,-5的补码为11111011。补码的好处是简化加减法运算。

三、数位分配示例

以8位二进制为例:

无符号数:00000000表示0,11111111表示255

有符号数:00000000表示0,11111111表示-1(补码表示)

四、应用场景对比

| 类型 | 表示范围 | 适用场景 |

|------------|------------------------|------------------------|

| 无符号数 | 0-2ⁿ-1| 非负整数计数、颜色编码等 |

| 有符号数 | -2ⁿ⁻¹到2ⁿ⁻¹-1| 通用数值存储、算术运算等 |

总结

n位二进制数通过补码机制同时支持有符号和无符号数表示,具体使用需根据实际需求选择。无符号数适合非负场景,有符号数则适用于需要表示负数的场景。