计算机体系结构--进制及运算

200 阅读3分钟

一、数的进制

1.1.十进制

  • 0~9
  • (123)D
  • (123)10

1.2.二进制

  • 0 1
  • (1001)B
  • (1001)2

1.3.八进制

  • 0~7

  • (301)O

1.4.十六进制

  • 09 AF
  • (13E)H
  • (13E)16

二、进制转换

3.1.十进制转二进制

  • 把被转换的十进制整数反复地除以2,直到商为0,所得的余数(从末位读起)就是这个数的二进制表示。简称"除2取余法"

3.2.二进制转十进制

  • 二进制数按权展开求和

三、原码、反码、补码、移码

3.1.带符号数的表示

  • 通常的做法是约定一个数的最高位为符号位,若该位为0,则表示正数;若该位为1,则表示负数

3.2.原码

  • 用最高位表示符号位,数值部分用二进制绝对值表示,这就是原码的表示方法
  • 例如:+11的原码:00001011;-11的原码是:10001011

3.3.反码

  • 原码变反码规则:正数的反码和其原码形式相同,负数的反码是除符号位,其他各位逐位取反(即0变1,1变0)
  • 例如:+11的反码:00001011;-11的反码是:11110100

3.4.补码

  • 补码规则为:正数的补码和其原码形式相同,负数的补码是原码除符号位以外逐位取反(即0变1,1变0),最后在末尾加1
  • 例如:+11的补码:00001011;-11的补码是:11110101
  • 将补码转换为真值:[[X]补]补=[X]原

3.5.移码(增码)

  • 无论正数、负数,在补码的基础上对符号位取反,一般用做浮点数的阶码,引入的目的是为了保证浮点数的机器零为全0
  • 例如:+11的移码:10001011;-11的移码是:01110101

四、定点数和浮点数

4.1.定点数

  • 定点整数:小数点的位置固定在最低位的右边,不占位
  • 定点小数:小数点的位置固定在符号位与最高数值位之间,表示一个纯小数

4.2.浮点数

  • 用类似科学计数法来表达,即N=M*Re,M称为尾数,R称为基数,e为阶码(指数)
  • 浮点数利用指数达到了浮动小数点的效果,从而灵活的表达更大范围的实数

五、校验码概述

5.1.基本概念

  • 编码体系指一种编码方式中所有合法码字的集合。合法码字占所有码字的比率就是编码效率

    • 一个编码系统中任意两个合法的编码之间的不同二进制位的数据叫这两个码字的码距
    • 该编码系统的任意两个编码之间的距离的最小值称为该编码系统的码距
    • 码距是衡量一种编码方式的抗错误能力的一个指标
  • 数字信息在传输和存取的过程中,由于各种意外情况的发生,数据可能会发生错误,即所谓误码

六、奇偶校验

6.1.基本概念

  • 奇偶校验较简单,串口通信中使用奇偶校验作为数据校验的方法

    • 奇校验:被传输的有效数据中,“1”的个数是奇数个,校验位填“0”,否则填“1”
    • 偶校验:被传输的有效数据中,“1”的个数是偶数个,校验位填“0”,否则填“1”
  • 使用一位奇偶校验的方法能够检测出一位错误,但无法判断是哪一位出错

  • 当发生两位同时出错的情况时,奇偶校验也无法检测出来。所以奇偶校验常用于少量数据的校验,如一个字节