type
status
date
slug
summary
tags
category
icon
password
💻 计算机如何表示负数?三种方法通俗讲解 + 举例
在日常生活中,我们表示负数很简单,写个
-
号就可以了,比如 -3
。但在计算机的世界里,所有数据都要转换成二进制(0 和 1),那么它是怎么理解“负数”的呢?
本文将介绍三种常见的负数表示方法,并用
-3
举例来对比。✅ 一、符号位 + 绝对值(Sign + Magnitude)
- 原理:用最左边的一位(最高位)表示正负,其余表示绝对值。
0
表示正,1
表示负。
例如:
+3
→0 011
→0011
-3
→1 011
→1011
缺点:
- 有两个“0”(
+0
和0
),不利于运算。
- 加减法逻辑复杂。
✴️ 二、1 的补数(One's Complement)
- 原理:负数 = 对正数二进制按位取反(0变1,1变0)
例如:
+3
→0011
-3
→ 取反 →1100
缺点:
- 依然有两个“0”(
0000
和1111
)。
- 加法时还需要进位处理,不够高效。
💯 三、2 的补数(Two's Complement)✅主流方法
- 原理:负数 = 对正数先取反,再加1
例如:
+3
→0011
- 取反 →
1100
- 加1 →
1101
所以,
-3
的 2 的补数表示是:1101
优点:
- ✅ 只有一个“0”
- ✅ 加减法可以统一用加法电路完成
- ✅ 所有主流计算机系统都采用这种方法
📌 总结对比表(以 -3 为例,4 位表示):
方法 | -3 的表示方式 |
符号 + 绝对值 | 1011 |
1 的补数 | 1100 |
2 的补数 ✅推荐 | 1101 |
💻 计算机中是怎么表示小数的?——固定小数点数入门讲解
在计算机里,表示小数有两种常见方法:
- ✅ 浮点数(浮动小数点)
- ✅ 固定小数点数(Fixed-Point)👉 本文重点!
🔸 什么是固定小数点数?
固定小数点数就是:我们人为规定小数点的位置,然后用二进制来存储这个数。
和浮点数相比,它的好处是运算更快、硬件实现简单,常用于音频处理、嵌入式系统等场景。
比如:
规定一个8位二进制数,前4位是整数,后4位是小数(Q4.4 格式)
🔸 有符号 vs 无符号
固定小数点数也分:
- 无符号数(Unsigned):只能表示正数
- 有符号数(Signed):可以表示正数和负数(使用“二的补码”)
🔹 表示范围(以 8 位 Q4.4 为例)
类型 | 表示范围 | 说明 |
无符号数 | 0 ~ 2⁸ - 1 → 0 ~ 255 | 没有负数,全是正值 |
有符号数 | -2⁷ ~ 2⁷ - 1 → -128 ~ 127 | 最高位是符号位,使用二的补码表示负数 |
- 无符号的范围是
0
到2ⁿ - 1
- 有符号的范围是
2ⁿ⁻¹
到2ⁿ⁻¹ - 1
✅ 总结
固定小数点数 = 小数点固定位置 + 二进制存储再加上是否带符号,决定了它能表示的数值范围!
- Author:minami
- URL:http://preview.tangly1024.com/national-license/20ad7ae8-88e2-80ca-8210-db54801c5072
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts