栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

第一章 概论

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

第一章 概论

  • 计算机硬件组成

    • CPU
      • 运算器
        • ACC (累加器) 存放 被加/减数,乘积高位,被除数运算结果
        • x (操作数寄存器) 存放 加/减数 被乘数 除数
        • MQ (乘商寄存器) 存放 乘数 商
        • ALU (算术逻辑单元) 计算
          【这个存放 结合运算那一章能更好记忆】
      • 控制部分
        • IR(指令寄存器) 存放指令
        • PC(程序计数器) 存放下一条指令的地址,每次执行完自动+1
        • CU(控制单元) 通过指令给出控制信号
    • 主储存器
      • MDR(数据寄存器) 存放数据
      • MAR(地址寄存器) 存放地址
      • 储存体 由储存单元构成
    • 步骤------完成a*b+c的操作(只写区别)
      • pc把指令地址传到mar,+1,mar将地址传到存储体,给出指令存放到mdr,mdr将指令传到ir,ir将指令传到cu,cu分析是 取数指令 【之后这个操作以…代替】
      • ir将指令的地址送到mar,mar->存储体->mdr,mdr将数传到acc
      • … 乘
      • acc 中的被乘数放到x ,mdr的乘数放到mq,alu运算后将结果放到acc
      • … 加
      • mdr中的加数放到x,alu运算后将结果放到acc
      • … 停机
      • 中断
  • 解释程序和编译程序

    • 解释程序java python 每次执行都要解释一次(执行一次解释一次)
    • 编译程序 c 第一次执行会生成一个.exe 之后每次执行只需要运行程序就可以(编译一次)
    • 指令
    • 微指令 -> 机器指令(二进制码) -> 汇编指令(人性化的机器指令[一一对应]) -> 高级语言
  • 计算机性能

    • 执行指令
      • CPU主频 1s能执行多少个时钟周期
      • CPI 一个指令需要多少个时钟周期
      • IPS 一秒可执行的指令数量
      • 执行一条指令的时间 = 时钟周期 * CPI
    • 容量
      • mdr的位数 * mar 的位数
    • 一些细节
      • 频率,速度 的 K M 底数为10[3] 大小 容量 K M 底数是2[10]
      • 1B = 8b
  • 计算机表示

    • 十进制 转 二进制 [先取的是靠近0 的那一位]
      • 大于0 除基
      • 小于0 乘基

    • 八进制 十六进制 和 二进制的转换 二进制用3位 4位 来代表一位
    • 十六进制 …H 0x…
    • 二进制 …B
BCD
  • 作用 机器运算规律是二进制 人熟悉十进制 BCD让两者的转换更快
  • 8421码
    • 四个二进制 0000-1001对应 0-9
    • 超出加6(以14(1110)为例)
      • 1110+ 0110 = 0001 0100 = 1 4
校验码
  • 码字 多个码位构成
  • 码距 两个码字差别的位数
    • 10 11 码距为1 100 111 码距为
  • 码距为1一无是处 码距为2 具有检错能力 码距>=3可能具有具有纠错能力
奇偶校验(统计1的个数)
  • 在原码字的基础上加上一位校验码,使得1的个数为偶(偶校验)或者为奇(奇校验)
  • 检验的时候使用异或 如果全部异或结果等于0 那么偶校验正确
汉明码(1位纠错)

假设码字为10111110

  • 确定校验码的数目 k = 4
    • 设置多位校验码,设校验码的数量是k,码字的位数为n,2k < k+n+1
    • 为什么 : 一位错,错误状态为k+n个,再加上一种正确的状态
  • 校验码的位置 1 2 3 4
    • 1248…2n
  • 分组(设校验码位P,信息位为D)
  • 组数 = 校验码的个数
  • 第一个组为校验位是P1 信息位为编号(从1开始)为1111 0011 0111 0101
  • 每个分组中信息位的编号
    • 校验位编号的二进制的1的位置是m
    • 那么这个分组中包含的信息位 编号 的 二进制位 的 第m个位置 需要是 1
  • 确定校验位 0101
    • 对一个组中的各位做异或,使得结果为0(偶校验)来确定校验位是什么
  • 检验
    • 如果一个位置出错,那么这个位置所存在的组也会出错,这些组中的校验位相加正是这个位置的编号
    • 图中顺序是反过来的
  • 补充 海明码的两位检错需要加一个全校验位
  • 循环冗余校验码(一般用来纠错)
    • 方式 通过信息位对除数做模2除
    • 步骤
      • 首先约定一个多项式(常数不能为0)【不理解为什么非要多项式,直接将除数传过去不是更好吗】
      • 根据多项式得到除数 x3+1 --> 1 * x 3 + 0 * x2+ 0 * x1 + 1 * x0–> 1001
      • 将信息位除除数得到余数,把余数添到信息位后面
      • 接受方得到信息后对除数做除法,如果余数不为0,则传输出现错误
    • 模2除
      • 最高位1 商1 最高位0 商0 然后两者做异或
  • 总结
    • 以后操作系统和这个还是一起学吧,忘的太快
    • 上标^^ 下标~~
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/931989.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号