计组:2

108 阅读2分钟

2.1 数制与编码

2.1.1 进位计数制及其相互转换

  1. 进位计数法
    • 十进制、二进制、八进制、十六进制
  2. 不同进制数之间的相互转换
    • 二进制转换为八进制、十六进制:将一串二进制数分为3位(八进制)或者4位(十六进制)一组
    • 任意进制数转换为十进制数:按权展开相加
    • 十进制数转换为任意进制数:除基取余法(整数部分的转换)、乘基取整法(小数部分的转换)
  3. 真值和机器数
    • 把符号“数字化”的数称为机器数

2.1.3 定点数的编码表示

  1. 机器数的定点表示

    • 定点小数:纯小数,约定小数点位置在符号位之后、有效数值部分最高位之前
    • 定点整数:纯整数,约定小数点位置在有效数值部分最低位之后
  2. 原码、补码、反码、移码

    • 原码表示法
      • 定义:用机器数的最高位表示该数的符号,其余的各位表示数的绝对值

    image.png

    image.png

    • 补码表示法

    image.png

    image.png

    image.png

    • 反码表示法

    • 移码表示法

    image.png

2.1.4 整数的表示

  • 无符号数和有符号数的表示

2.2 运算方法和运算电路

2.2.1 基本运算部件

  1. 一位全加器
  2. 串行进位加法器
  3. 并行进位加法器
  4. 带标志加法器
  5. 算术逻辑单元(ALU)

2.2.2 定点数的移位运算

  1. 算术移位:移位对象是有符号数,移位过程中符号位保持不变

    image.png

  2. 逻辑移位:

    image.png

  3. 循环移位

2.2.3 定点数的加减运算

  1. 补码的加减法运算

    image.png

  2. 补码加减运算电路

  3. 溢出判别方法

2.2.4 定点数的乘除运算

  1. 定点数的乘法运算
  2. 定点数的除法运算

2.2.5 C语言中的整数类型及类型转换

  1. 有符号数和无符号数的转换
    • 强制类型转换的结果保持位值不变,仅改变了解释这些位的方式
  2. 不同字长整数之间的转换
    • 大->小时,高位截断
    • 小->大时,零拓展、符号拓展

2.2.6 数据的存储和排列

  1. 数据的“大端方式”和“小端方式”存储

    image.png

  2. 数据按“边界对齐”方式存储