本课目标
理解计算机为什么使用二进制;掌握进制转换、定点/浮点数表示;了解原码、反码、补码;熟悉基本算术逻辑运算,明白计算机底层如何存储和处理各类数据。
2.1 计算机为什么采用二进制 Binary
计算机硬件电路只有两种稳定状态:通电/断电、高电平/低电平,正好对应 1 和 0。
- 优势:硬件实现简单、抗干扰能力强,运算规则少;
- 缺点:人类读写不方便,所以日常使用十进制,需要进制互相转换。
补充:八进制 Oct、十六进制 Hex 是二进制的简写形式,方便程序员书写二进制串。1位十六进制 = 4位二进制。
2.2 进制转换
十进制 → 二进制
- 整数部分:除2取余,逆序排列
- 小数部分:乘2取整,顺序排列
二进制 → 十进制
按权展开求和:每一位数字 × 2的位权次方,累加得到十进制。
例:$(1011)_2 = 1×2^3 + 0×2^2 +1×2^1 +1×2^0 = 11$

2.3 机器数与真值
现实数字有正负,但计算机只能存0和1。
把符号数字化:最高位作为符号位,0代表正数,1代表负数。
- 真值(True Value):带正负号的实际数值,例如 $-1011$
- 机器数(Machine Number):存放在计算机里的二进制编码,例如
11011
机器数有三种常用编码:原码、反码、补码
原码 Original Code
符号位+数值本身绝对值。
优点:直观,和真值转换简单。
缺点:0有两种表示 +0、-0;减法不能直接做,硬件实现复杂。
反码 One’s Complement
- 正数反码 = 原码
- 负数反码:符号位不变,数值位全部按位取反
依然存在两个0,一般不用于运算,多用于过渡。
补码 Two’s Complement(重点)
计算机实际运算使用补码
- 正数补码 = 原码
- 负数补码:反码 + 1
特点:
- 0只有唯一编码;
- 减法可以转换成加法运算,CPU只需要一套加法电路,大幅简化硬件。

2.4 定点数与浮点数
定点数 Fixed-point Number
小数点位置固定不变。
- 定点整数:小数点在最低位右侧
- 定点小数:小数点在符号位与数值位之间
优点:硬件简单;缺点:表示范围很小。
浮点数 Floating-point Number
类似科学计数法:$N = M × 2^E$
- 尾数 Mantissa(M):决定数值精度
- 阶码 Exponent(E):决定数值表示范围
IEEE754 是通用浮点数标准: - 单精度 float:32位,1位符号 + 8位阶码 + 23位尾数
- 双精度 double:64位,1位符号 + 11位阶码 + 52位尾数
⚠️ 浮点数存在精度丢失,小数不能无限精确存储。
2.5 算术运算与逻辑运算
算术运算 Arithmetic Operation
补码加法:$[A+B]{补} = [A]{补}+[B]_{补}$,溢出需要做判断。
溢出 Overflow:运算结果超出当前字长能表示范围,结果出错。注意区分溢出和进位。
逻辑运算 Logic Operation
按位操作,每一位独立运算,没有进位:
- 逻辑与 AND:全1出1
- 逻辑或 OR:有1出1
- 逻辑非 NOT:0变1,1变0
- 异或 XOR:相同为0,不同为1
本课小结
计算机底层只用二进制存储信息。正负号编码为机器数,现代CPU依靠补码把减法转为加法,降低硬件成本。定点数适合小范围整数;浮点数利用阶码+尾数,用来表示大数和小数,但会有精度损失。ALU负责完成算术、逻辑运算。
思考练习
- 计算机为什么选择二进制,而不是十进制?
- 简述原码、反码、补码的区别,为什么计算机运算使用补码?
- IEEE754单精度浮点数分为哪三部分?
0 条笔记