计算机系统基础知识1

计算机系统的组成

在这里插入图片描述

  • 中央处理单元:CPU

计算机的类型

  • 按照体积和工作能力
    • 巨型机,大型机,小型机,微型机,微型机分为台式机,膝上型计算机,笔记本电脑,工作站,掌上计算机和个人数字助理等
  • 按照功能是否专一
    • 通用计算机
    • 专用(嵌入式)计算机
  • 按照 CPU 的指令系统架构
    • 复杂指令系统计算机
    • 精简指令系统计算机
  • 按照体系结构及指令处理方式
    • 单指令流单数据流计算机
    • 单指令流多数据流计算机
    • 多指令流单数据流计算机
    • 多指令流多数据流计算机
  • 计算机应用领域
    • 数值计算
    • 数据(或信息)处理
    • 实时控制(或过程控制)
    • 人工智能
    • 计算机辅助设计
    • 计算机辅助教学
    • 计算机辅助管理等方面
  • 计算机主要功能
    • 处理文字,数值,声音,图形图像等
  • 在计算机内部,各种信息都必须经过数字化编码后才能被传送,存储,处理
  • 所谓编码,就是采用少量的基本符号,选用一定的组合原则,以表示大量复杂多样的信息

计算机中数据的表示和运算(重点)

进位计数制

  • 在采用进位计数制的数字系统中,如果只用一个基本符号 # 表示数值,则称其为 # 进制,# 称为此进制的基数
  • 不同数制的共同特点
    • 每一种数制都有固定的符号集,如十进制的基数有十个:0,1,2,3,4,5,6,7,8和9,二进制的基数有两个:0和1
    • 每一种数制都使用位置表示法,即处于不同位置的基数所代表的值不同,它所表示的数值大小与它所在位置的权值(位权)有关,如十进制数 1234.56 可表示为:
      1234.56 = 1 * 103 + 2 * 102 + 3 * 101 + 4 * 100 + 5 * 10-1 + 6 * 10-2
      二进制的 100101011 可表示为
      100101011 = 1 * 28 + 0 * 27 + 0 * 26 + 1 * 25 + 0 * 24 + 1 * 23 + 0 * 22 + 1 * 21 + 1 * 20
    • 可以看出,各种进位计数制中的位权就是基数的某次幂
      在这里插入图片描述
  • 二进制是计算机中最常使用的计数法,一个二进制的 0 或者 1 占用一个比特(bit)的存储空间
  • 可以用 3 位 二进制数 表示 1位 八进制数,可以用 4 位 二进制数 表示 1 位 八进制数

进制之间的转换

十进制的转换

  • 任何进制转换成十进制,都可以使用按位权展开相加法来计算
  • 二进制转换成十进制,如
    1010.01(B) = 1 * 23 + 0 * 22 + 1 * 21 + 0 * 20 + 0 * 2-1 + 1 * 2-2 = 8 + 0 + 2 + 0 + 0 + 0.25 = 10.25(D)
  • 八进制转换成十进制,如
    123.45(O) = 1 * 82 + 2 * 81 + 3 * 80 + 4 * 8 -1 + 5 * 8 -2 = 64 + 16 + 3 + 0.5 + 0.078125 = 83.578125(D)
  • 十六进制转换成十进制,如
    12.3(H) = 1 * 161 + 2 * 160 + 3 * 16-1 = 16 + 2 + 0.1875 = 18.1875(D)

二进制的转换

十进制转换二进制
  • 方法一:把整数部分和小数部分分开来计算,整数部分用 除二取余法,小数部分用 乘二取整法,如
    123.45(D) ≈ 1111011.0111(B){123除二取余为 1111011}
    在这里插入图片描述
  • 除二取余法:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为0时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
  • 原理:位权的大小是以基数为底,数字符号所处的位置的序号为指数的整数次幂。十进制数的百位、十位、个位、十分位的权分别是10的2次方、10的1次方、10的0次方,10的-1次方。二进制数就是2的n次幂。按权展开求和正是非十进制化十进制的方法。举个十进制整数转换为二进制整数的例子,假设十进制整数A化得的二进制数为edcba 的形式,那么用上面的方法按权展开, 得
    A=a(20)+b(21)+c(22)+d(23)+e(24) (后面的和不正是化十进制的过程吗)
    假设该数未转化为二进制,除以基数2得
    A/2=a(20)/2+b(21)/2+c(22)/2+d(23)/2+e(24)/2
    注意:a除不开二,余下了!其他的绝对能除开,因为他们都包含2,而a乘的是1,他本身绝对不包含因数2,只能余下。
    商得:
    b(20)+c(21)+d(22)+e(23),再除以基数2余下了b,以此类推。
    当这个数不能再被2除时,先余掉的a位数在原数低,而后来的余数数位高,所以要把所有的余数反过来写。正好是edcba
  • 乘二取整法:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,此时0或1为二进制的最后一位。或者达到所要求的精度为止。然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。
  • 原理:关于十进制小数转换为二进制小数,假设一十进制小数B化为了二进制小数0.ab的形式,同样按权展开,得
    B=a(2-1)+b(2-2)
    因为小数部分的位权是负次幂,所以我们只能乘2,得
    2B=a+b(2-1)
    注意a变成了整数部分,我们取整数正好是取到了a,剩下的小数部分也如此。值得一提的是,小数部分的按权展开的数位顺数正好和整数部分相反,所以不必反向取余数了。
  • 方法二:把十进制数写成按二进制位权的大小展开的多项式,再按位权从高到低依次取各项系数就可以得到相应的二进制数,如
    123.45(D) = 64 + 32 + 16 + 8 + 2 + 1 + 0.25 + 0.125 + 0.0625 + …… = 26 + 25 + 24 + 23 + 21 + 20 + 2-2 + 2-3 + 2-4 + …… ≈ 1111011.0111(B)
八进制,十六进制转成二进制

在这里插入图片描述

  • 同理,每一位十六进制用四位二进制数表示
  • 首尾的 0 可以省略
  • 例:123.54(O) = 001 010 011.101 100 = 1010011.1011(B)
    1010011.1011(B) = 001 010 011.101 100 =123.54(O)
    ABC.123(H) = 1010 1011 1100.0001 0010 0011 = 101010111100.000100100011(B)
    101010111100.000100100011(B) = 1010 1011 1100.0001 0010 0011 = ABC.123(H)

十进制转八进制,十六进制

  • 类似于十进制转二进制,十转八是整数部分 除八取余,小数部分 乘八取整,十转十六是整数部分 除十六取余,小数部分 乘十六取整
  • 例 67.89(D) ≈ 103.7075(O)
    在这里插入图片描述
  • 例 67.89(D) ≈ 43.E3D7(H)
    在这里插入图片描述

八进制和十六进制转换

  • 先转换成二进制,然后再转换

  • 任何进制转换成十进制,都可以使用按位权展开相加法来计算
  • 十进制转换成任何进制,都可以使用 整数除进制基数逆向取余,小数乘进制基数顺序取整

二进制运算规则

  • 算法和十进制没什么区别
  • 整数部分和整数部分,小数和小数部分对应位进行运算

加法

  • 二进制加法的进位规则是 逢二进一
    0 + 0 = 0 1 + 0 = 1 0 + 1 = 1 1 + 1 = 0(有进位)

减法

  • 二进制减法的进位规则是 借一当二
    0 - 0 = 0 1 - 0 = 1 1 - 1 = 0 0 - 1 = 1(有借位)

乘法

  • 同一为一,否则为零
    0 × 0 = 0 1 × 0 = 0 0 × 1 = 0 1 × 1 = 1

除法

0/0(无意义) 0/1=0 1/0(无意义) 1/1=1

机器数和码制

  • 各种数据在计算机中的表示称为机器数,采用二进制计数制小数点隐含表示而不占位置,机器数对应的实际数值称为数的真值
    例:10(D) = 1010(B)10为真值,1010为10在计算机中的机器数
  • 机器数有无符号和有符号之分,无符号数表示正数,在机器数中没有符号位只有数值位
  • 有符号数的最高位为符号位,用于表示数值的正负除最高位以外,其余位为数值位
  • 小数点在机器数最低数值位之后的数为纯整数,小数点在机器数最高数值位之前的数为纯小数
  • 正数的反码,补码和原码相同
    例:100可以看成100.0,是纯整数,0.11小数点前是0,是纯小数
    在这里插入图片描述
    在这里插入图片描述
  • 机器数前提是要有机器字长

反码

在这里插入图片描述
在这里插入图片描述

  • 注:反码是对其正数的反码,也可以理解成正数的原码进行取反

补码

在这里插入图片描述

  • 注意,负数的补码是对反码的末尾加 1,比如:n=8,[-0.5]=1.0111111,所以 [-0.5]=1.0111111+0.0000001=1.1000000

移码

在这里插入图片描述

定点数和浮点数(了解)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

11.0101(B)= 0.110101 × 22,2(幂数) 为阶码,0.110101 为尾数

十进制数与字符编码表示

在这里插入图片描述

  • BCD 编码:用四位二进制数表示一位十进制数
  • 8421BCD 码:和正常的四位二进制数表示一位十进制数一样(8,4,2,1 依次为 2 的 3,2,1,0 次幂)
  • 余 3BCD码:除去前三个,(即 0000,0001,0010)从 0011 开始,依次加一的二进制表示,或者每个 8421 码基础上加 3
  • 格雷码(不常用):相邻两个代码之间只有一位不同,不同位从 1 开始依次是 4,3,4,2,1,2,3,2,1
  • 有权码:自然二进制代码是按照二进制代码各位权值大小,以自然向下加一,逢二进一的方式来表示数值的大小所生成的代码,比如 8421 码是应用最多的有权码(有位权)
  • 无权码:没有位权

ASCII 码

在这里插入图片描述

  • 0:0110000(从 0 开始第 48 个)
  • A:1000001(65)
  • a:1100001(97)

汉字编码

  • 输入码,内部码,字形码依次理解为 输入方法,存储方法,输出方法
    在这里插入图片描述

输入码

在这里插入图片描述

内部码

在这里插入图片描述

字形码

在这里插入图片描述

校验码

  • 主要检测数据传输过程中是否有误
    在这里插入图片描述
    在这里插入图片描述
  • 码距:一个编码系统中任意两个合法编码之间的差距

奇偶校验码

在这里插入图片描述
在这里插入图片描述

  • 带奇校验位的 8421 码:算上奇校验位(共 5 位)使得其 1 的位数是奇数个
  • 带偶校验位的 8421 码:算上偶校验位(共 5 位)使得其 1 的位数是 0 个或偶数个
  • 某字符的 ASCII 码值用十进制表示为 69 ,若用二进制形式表示并将最高位设置为偶校验位,则为 11000101

汉明码(海明码)

  • 首先确定校验码 P 在汉明码中的个数 n 和位置,求校验位个数 n 的公式为 2n >= R + n + 1,P 在 2n 的位置,R 为传输数据的位数,满足条件的最小的 n 即为校验位个数,当 R=8时,取 n=4,即插入四位,在 20,21,22,23 四个位置放校验码(数据位加上校验位就是汉明码的总位数)
  • 转换信息位:将每一位信息位转换成阶乘方式
    D0=3=21+20(D0 在汉明码的第 3 位,所以将 D0 转换成 3,下面同理)
    D1=5=22+20
    D2=6=22+21
    D3=7=22+21+20
    D4=9=23+20
    ……
    在这里插入图片描述
  • 偶校验
    p1=D0⊕D1⊕D3⊕D4⊕D6
    p2=D0⊕D1⊕D3⊕D4⊕D6
    p3=D1⊕D2⊕D3⊕D7
    p4=D4⊕D5⊕D6⊕D7
    Pn 等于包含有相对应 2n-1 项的信息码相异或,比如 P1 就找转换信息位中含有 20 的,有 D0,D1,D3,D4,D6
    (异或:相同值的异或值为 0,不同值的异或值为 1)
  • 奇校验
    将 p1p2p3p4 取反,即 1 变成 0,0 变成 1
    在这里插入图片描述
    在这里插入图片描述
  • 检测错误
    G1=p1⊕D0⊕D1⊕D3⊕D4⊕D6
    G2=p2⊕D0⊕D1⊕D3⊕D4⊕D6
    G3=p3⊕D1⊕D2⊕D3⊕D7
    G4=p4⊕D4⊕D5⊕D6⊕D7
    若采用偶校验则 G1G2G3G4 全为 0表示接收到数据无错误,奇校验全为 1 表示接收到数据无错误,否则表示有错误,而且 G4G3G2G1 指出了错误位置,例如G4G3G2G1=1010(B)=10(D),表示海明码第 10 位出错,即 D5 出错,将其取反即可纠正错误

循环冗余校验码

在这里插入图片描述

  • 数据位和校验位单独放,不混一起,左边为数据,右边为校验码

  • 在冗余校验码中,多项式为 X4+X1+1,信息码为 10111,则计算出 CRC 校验码是多少?

  • 根据多项式 X4+X1+1=124+023+022+121+1*20=10011
    信息码 X 的最高次方为 4 次方,则在其后面补 4 个 0,得到 101110000
    把调整的信息码和多项式相除:101110000/10011=10100余1100(注意这里加减不进位和借位,是模 2 运算,也可以理解为相异或)
    得到的余数就是校验码,则校验码为 1100,则相应的 CRC 校验码为 101111100
    在这里插入图片描述

逻辑代数与逻辑运算

  • 逻辑代数也叫布尔代数,只有两个值,真,假,通常用 1 表示 真,0 表示 假

基本逻辑运算

在这里插入图片描述

  • 与:0 和 1 的乘法,全 1 为 1,否则为 0
  • 或:0 和 1 的加法,有 1 为 1,全 0 为 0
  • 非:取反,1 变 0,0 变 1
    在这里插入图片描述
  • 异或:相同为 0,否则为 1
  • 同或运算:用 ⊙ 表示,设 A 和 B 为两个逻辑变量,当且仅当 A,B 的值相同时,A 同或 B 为真,即 A ⊙ B = A * B + A~ (A 取反)* B~(B 取反)
  • 同或:相同为 1,不同为 0

常用逻辑公式

在这里插入图片描述

  • 交换律:A+B=B+A,A*B=B * A
  • 结合律:A+(B+C)=(A+B)+C,A*(B*C)=(A * B)*C
  • 分配率:A*(B+C)=A * B+A * C,A+(B * C)=(A+B)*(A+C)
  • 反演律:(A+B)~=A~ * B~,(A*B)~=A~+B~
  • 重叠率:A+A=A,A*A=A
  • 互补率:A~+A=1,A~*A=0
  • 吸收率:A+A~B=A+B
  • 0-1率:0+A=A,0 * A=0,1+A=1,1 * A=A
  • 对合律:(A~)~=A
  • 其他公式:A * B+A * B~=A,A+A * B=A,A * B+A~ * C+B * C=A * B+A~ * C,(A⊕B)~=A~⊕B=A⊕B~

逻辑表达式的化简

在这里插入图片描述

  • 真值表:表征逻辑事件输入和输出之间全部可能状态的表格
  • 例:
    用真值表证明吸收率 A + A~B = A + B
ABA~BA+A~BA+B
00000
01111
10011
11011

用真值表证明吸收率 A~ + AB = A~ + B

ABA~ABA~+ABA~+B
001011
011011
100000
110111

AB+AB~=A(B+B~)=A*1=A

机器数的运算

机器数的加减运算

  • 计算机中机器数的加减运算用补码加减法,不用原码加减法
    在这里插入图片描述
  • 负数的补码等于它的除符号位的其他位取反,然后末尾加 1
  • 由 X 求 -X 的方法:X的各位取反(包括符号位),末尾加 1

  • 10001010 的补码 X=11110110
    -X=00001010
  • 注:两个负数相加时溢出位不能丢弃,而是保持其符号位不变,将除符号位的其他位相加,如 10110101+10011011,保持符号位 1 不变,让 0110101 加 0011011,结果为1010000,将符号位 1 放到符号位,所以最终结果为 11010000
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

机器数乘除运算

在这里插入图片描述

浮点运算

在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值