2.1 数制与编码
2.1.1 进位计数制及其相互转换
- 进位计数法
- 十进制、二进制、八进制、十六进制
- 不同进制数之间的相互转换
- 二进制转换为八进制、十六进制:将一串二进制数分为3位(八进制)或者4位(十六进制)一组
- 任意进制数转换为十进制数:按权展开相加
- 十进制数转换为任意进制数:除基取余法(整数部分的转换)、乘基取整法(小数部分的转换)
- 真值和机器数
- 把符号“数字化”的数称为机器数
2.1.3 定点数的编码表示
-
机器数的定点表示
- 定点小数:纯小数,约定小数点位置在符号位之后、有效数值部分最高位之前
- 定点整数:纯整数,约定小数点位置在有效数值部分最低位之后
-
原码、补码、反码、移码
- 原码表示法
- 定义:用机器数的最高位表示该数的符号,其余的各位表示数的绝对值
- 补码表示法
-
反码表示法
-
移码表示法
- 原码表示法
2.1.4 整数的表示
- 无符号数和有符号数的表示
2.2 运算方法和运算电路
2.2.1 基本运算部件
- 一位全加器
- 串行进位加法器
- 并行进位加法器
- 带标志加法器
- 算术逻辑单元(ALU)
2.2.2 定点数的移位运算
-
算术移位:移位对象是有符号数,移位过程中符号位保持不变
-
逻辑移位:
-
循环移位
2.2.3 定点数的加减运算
-
补码的加减法运算
-
补码加减运算电路
-
溢出判别方法
2.2.4 定点数的乘除运算
- 定点数的乘法运算
- 定点数的除法运算
2.2.5 C语言中的整数类型及类型转换
- 有符号数和无符号数的转换
- 强制类型转换的结果保持位值不变,仅改变了解释这些位的方式
- 不同字长整数之间的转换
- 大->小时,高位截断
- 小->大时,零拓展、符号拓展
2.2.6 数据的存储和排列
-
数据的“大端方式”和“小端方式”存储
-
数据按“边界对齐”方式存储