计算机组成原理笔记记录(第二章)

news2024/11/17 0:07:46

次为笔记记录,原视频链接为B站视频链接,若有错误请指出,看到就会改正

进制

r进制数及其转换成十进制数

在这里插入图片描述
r^n就是第n位的维权,n<0就是小数部分的位权。
例子:1011
为十进制的时候:1011=1×103+0×102+1×101+1×100
为二进制的时候
1011=1×23+0×22+1×21+1×20=(10)10
为八进制的时候
1×83+0×82+1×81+1×80=(521)10
为十六进制的时候
1×163+0×162+1×161+1×160=(2990)10

十进制转换成r进制

  • 对于整数部分就是除基取余数法.注意:到着取
  • 对于小数部分是乘基取整法.注意:顺着取

例子

将十进制的32.125分别转换为二,八,十六进制
在这里插入图片描述

二,八,十六进制的转换

看例子: 二进制转换为八进制,三位一组,转换为十六进制,四位一组,整数部分不足的在前面补零,小数部分不足的在后面补零

B->O,H

二进制的101101011.1011
转换为八进制
101 101 011.101 100=553.6
转换为十六进制
1 0110 1011.1011=16B.B

BCD码

8421码

这个要掌握加法运算
四位二进制数能表示的状态是16种,但8421码只用前10种.

加法运算:出现非法码(10~15之间的),在非法码的基础上加上0110,低位向高位产生了进位,在低位加上0110.
每四位分成一组,在产生进位的组中加上0110

例子

用8421BCD码来计算9+9的结果
1001
+1001
10010
将10010+0110=1 1000 转换为十进制为18
0110

余3码

在8421码的基础上,每四位加0011即可

2421码

举个例子来说,求98的2421码
9=2+4+2+1
8=2+4+2
(98)2421=1111 1110

字符串

英文的就是ASCII码,需要注意的是A的ASCII码是65,a的ASCII是97,0是48
汉字的表示是用GB 2312-80来表示的
字符串的结束标志常采用’\0’作为结尾标志

大端模式与小端模式

大端模式:将数据的最高有效字节存储在低地址单元中,这个模式便于人识别
小端模式:将数据的最高有效字节存储在高地址单元中.这个模式便于计算机识别
在这里插入图片描述

区位码,国标码,机内码的互相转换

区位码了解下,就是94个区,每个区94个位置,每个位置存放一个汉字,这样汉字就能数值化了,每个位置有一个唯一的编号,这样就能将汉字与数值对应起来

注:以下说明的+20H,+80H都是每两位加一个,不足两位前面补零凑齐两位
区位码+20H->国标码。个人理解,记公式也可以(之所以加20H是为了跳过控制/通信字符的)
国标码+80H->汉字内码 个人理解,记公式也可以(之所以加80H是为了和英文做个区分,80H转换乘十进制就是128,英文的ASCII码是占用一个字节,最高位都是0,加上80H就是将每一个字节的最高位置为1)
在这里插入图片描述

奇偶校验码

这个的纠错能力:1位,检错能力:2位

  • 码字: 由若干位代码组成的一个字叫做码字
  • 将两个码字逐位进行对比,具有不同的位的个数称为两个码字间的距离
  • 合法码字间的最小距离称为’码距’

码距=1时,没有检错能力,等于2时有检错能力,大于等于3时,设计合理,可能具有检错、纠错能力

  • 奇校验码:整个编码或者数据中的1的个数必须为奇数 可以通过同或来实现
  • 偶校验码:整个编码或者数据中的1的个数必须为偶数 可以通过异或来实现

例子

1001 0001 0001的奇校验码为1 1001 0001 0001(1001 0001 0001中1的个数为偶数,所以校验位必须为1,才能保证1的个数为奇数)
偶校验码为0 1001 0001 0001(1001 0001 0001中1的个数为偶数,所以校验位必须为0,才能保证1的个数为偶数)

海明校验码

信息位:n
校验位:k
2k>=n+k+1
找到满足条件的最小k
看一个例子
信息位:1011
信息位为4,带入2k>=n+k+1得,k=3
校验位Pi需要放在海明码得2i-1的位置上

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

P1 = H3异或H5异或H7,就是只管P1所在列为1的部分,H3=1,H5=1,H7=1,P1的结果为1
P2 = H3异或H6异或H7=1异或0异或1=0
P3=H5异或H6异或H7=1异或0异或1=0
所以最终结果为1010101
校验方程
在这里插入图片描述
如果元数据为1010101,接收到的数据时1010001

P1=1(就是最后一位.因为2i-1=1.i此时等于1),H的下标是从最后一位开始的,比如H1就是最后一位(从左往右数)
S1 = 1异或1异或1异或1=0
S2 = 0异或1异或0异或1=0
S3= 0异或1异或0异或1 = 1
S3 S2 S1 = 100 转换为二进制为4,就是从右往左数,第四位出错了,将第四位取反即可

最后

加上一个全校验位进行偶校验
若S3 S2 S1 =000且全体偶校验成功就是无错误
若S3 S2 S1 ≠000且全体偶校验失败就是有1位错误,取反
若S3 S2 S1 ≠000且全体偶校验成功就是有2位错误,需要重传

循环冗余校验码 CRC

这个用于网络传输比较多一点,几千个bit+几个校验位
我个人理解就是约定一个除数,将接收到的信息对除数进行模2除,如果除数等于0就是没有错误,反之就有错误,但是这个余数的所代表的位置不一定就是错误的.

k个信息位,r个校验位,满足2r>=k+r+1,crc码可纠正1位错误

例子:生成的多项式G(x)=x3+x2+1,信息码位101001,求对应的CRC码。
生成的多项式为 1101(G(X)=x3+x2+x0,如果式子中有该位的序号就是1,如有3,那么第四位就是1,有0,那么第一位就是1,如果没有就是0),G(x)最大幂数是3,需要将101001逻辑左移3位得到101001000.
在这里插入图片描述
最终结果位101001001

定点数的表示

无符号数

没有符号位,全部都是数值位,相当于数的绝对值
范围:n位的无符号数的表示范围0~2n-1

有符号数

原,反,补,移码

  • 原码:若为负数,符号位为1,若为正数符号位为0.
  • 反码:正数的原,反,补码都是一样的,负数的反码就是符号位不变,各位取反
  • 补码:负数的补码在反码的基础上面+1
  • 移码:在补码的基础上将符号位取反即可。
    在这里插入图片描述
    移码主要是方便比较大小

运算

[x+y]补=[x]补+[y]补
[x-y]补=[x]补+[-y]补
判断溢出:
单符号位:
在这里插入图片描述
在这里插入图片描述
双符号位:当符号位为01时则上溢,当符号位为10则位下溢

移位运算

算数移位

符号位保持不变,仅仅对数值位进行移位。所有的正数的算数移位都与原码一样
原码右移高位补零,低位丢弃,原码左移低位补零,高位丢弃
反码:负数右移高位补1,低位丢弃,反码左移低位补1,高位丢弃
补码:负数右移高位补1,低位丢弃,反码左移低位补0,高位丢弃
在这里插入图片描述
应用
在这里插入图片描述

逻辑移位

逻辑右移:高位补0,低位舍弃
逻辑左移:低位补0,高位舍弃

循环移位

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

符号扩展

在原符号位和数值位中间添加新位,正数都添0,负数原码添0,负数反,补码添1

原码的乘法运算

将MQ的最后一位与X相乘存储到ACC中,再进行逻辑右移,重复,知道MQ的乘数被移除
在这里插入图片描述


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

补码一位乘法

Booth算法
在这里插入图片描述

原码除法

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

补码除法

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

强制类型转换

int a=165537,b=34991;
short c=(short)a,d=(short)b;
在这里插入图片描述
short x=-4321;
int m=x;
x: 1110 1111 0001 1111
m:1111 1111 1111 1111 1110 1111 0001 1111
是以补码存储的,x是负数,负数符号位扩展添加1(在符号位与数值之间)

浮点数

在这里插入图片描述
阶码E反映浮点数的表示范围及小数点的实际位置,常用补码或移码表示的定点整数
尾数M的数值部分的位数n反映浮点数的精度,常用原码或补码表示的定点小数
阶码.尾数都用补码表示,求a,b的真值
a=0,01;1.1001
b=0,10;0.01001
a=21×(-0.0111)=-0.111
b=22×(0.01001)=1.001

规格化

左规:尾数算数左移一位,阶码减一
右规:尾数算数右移一位,阶码加一(双符号位为01或10时)
在这里插入图片描述

若某浮点数的阶码,尾数用补码表示,共4+8位,0.110;1.1110100如何规格化
2 6×(-0.0001100)
23×(-0.1100)

IEEE 754标准

在这里插入图片描述
规格化的短浮点数的真值为(-1)s×1.M×2E-127

将十进制数-0.75转换为IEEE 754的单精度浮点数格式表示
(-0.75)10=(-0.11)2=(-1.1)×2-1
数符:1位,因为是负数所以为1
阶码:8位 -1 + 111 1111=0111 1110 凑足8位
尾数:23位 10000000000000000000000
结果: 1 0111 1110 10000000000000000000000

IEEE 753的单精度浮点数 C0 A0 00 00H的值是多少
1 100 0000 1010 0000 0000 0000 0000 0000
数符:为1 所以是负数
阶码:8位 1000 0001看成无符号数 129D
尾数:23位 010 0000 0000 0000 0000 0000
2129-127×(-1.01)=22×(-1.01)=-101=-5
特点

  • 当阶码E全为0,尾数M不全为0时,表示非规格化小数
    例如:20×1.00000001111
  • 当阶码E全为0,尾数M全为0时,表示真值正负0
    例如:20×(-1.00000000000)=-0
    20×(1.00000000000)=0
  • 当阶码E全为1,尾数M全为0时,表示无穷大(正负都有)
  • 当阶码E全为1,尾数M不全为0时,表示非数值

运算

这里我可能算错了,你们选择的看
例题:
已知十进制数X=-5/256,Y=59/1024,按照及其补码浮点数运算规则计算X-Y,结果用二进制表示,浮点数格式如下:阶符取2位,阶码取3位,数符取2位,尾数取9位,用补码表示阶码和尾数
X=-101×2-8=-0.101×2-3=-0.101×2-011,Y=-111011×2-10=-0.111011×2-4=-0.111011×2-100
x: 11 011 11 0110 00000
y: 11 100 00 0111 01100

  1. 对阶: 小的向大的对齐(绝对值小的向大的对齐
    求阶差:[▲E]补=11011+ 00 100=11 111=-1 x<y
    对阶: x:11 011 11 10110 0000 (补码算数右移,空出来的补1)
  2. 尾数相减
    -Y = 11 100 11 000101000
    X-Y=在这里插入图片描述
  3. 规格化
    X-Y= 11 100 10.1100 0100 0=11 101 11.011000100
    双符号位算数右移 10.1100 0100 0 ->10.011000100->11.011000100
  4. 舍入: 没有舍入
    舍入方法1:0舍1入.最后一位是1就进1,若是0直接舍去
    方法2:恒置1 最后一位恒置1
  5. 判溢出:无溢出

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/186947.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Scipy误差函数详解

文章目录误差函数简介复平面上的误差函数与误差函数相关的函数误差函数简介 误差函数的实质是正态分布的概率&#xff0c;其重要性可见一斑&#xff0c;其表达式为 erf⁡2π∫0xe−t2dt\operatorname{erf}\frac{2}{\sqrt{\pi}}\int^x_0e^{-t^2}\text dt erfπ​2​∫0x​e−t2…

vue老项目增加提交格式化功能[eslint+prettier+husky+lint-staged]

一、当前项目情况说明 当前项目是已经开发迭代很久的项目&#xff0c;之前因为需求紧急&#xff0c;所以没有对代码格式话进行规范要求&#xff0c;导致每个开发人员提交的代码格式千差万别&#xff0c;增加了阅读难度及后期的维护成本&#xff0c;如果直接run lint&#xff0…

网络拓扑七大类型:总线、环形、星形、网状、树形、点对点、混合,我背的滚瓜烂熟!

大家好&#xff0c;这里是网络技术联盟站。 在网络世界中&#xff0c;经常会看到各种各样的网络拓扑&#xff0c;网络拓扑主要就是描述网络中各个元素的对应关系&#xff0c;那么网络中包含哪些类型的拓扑呢&#xff1f; 如上图所示&#xff0c;网络拓扑一般有两大类型&#x…

JS---数组的方法

一、方法 1.1、Pushing和Poping arr.push(1)&#xff1a;往arr数组的最后面压入1&#xff0c;push() 方法返回新数组的长度。 var fruits ["Banana", "Orange", "Apple", "Mango"]; fruits.push("Kiwi"); // fruits …

Ruoyi-Cloud框架学习-【04 用户登录】

前端 路由配置在router/index.js里 首页在views/index.vue4 前端端口与后台端口在vue.config.js里定义 vue.config.js 前台端口 后台端口 Ruoyi-Cloud登录流程 Login.vue 定义了登录handlerlogin&#xff0c;具体方法调用modules/user.js store/index.js 调用了modul…

【Stm32杂谈】:Stm32F103野火指南针开发板红外遥控程序问题记录和解析(个人理解)

项目场景&#xff1a; 最近在使用Stm32F103野火指南针开发板开发红外遥控外设得时候&#xff0c;用得是野火得开发板&#xff0c;本来发现应该很简单的事情&#xff0c;官方也很贴切的提供了官方例程。但是居然有问题&#xff0c;无法正常使用。 于是这篇文章应运而生&#xff…

环保数采仪 5G无线环保数采仪 智能环保数采仪

计讯物联智能环保数采仪&#xff0c;无线远距离数据传输、采集、控制、存储。支持全网通5G/4G移动网络、北斗、有线通信&#xff0c;数据上报云监控中心&#xff0c;支持GPS定位分散设备远程统一管理。支持环保协议&#xff0c;对接各省市县级监管平台&#xff0c;广泛应用于废…

Kubernetes集群搭建

Kubernetes集群搭建 目录 前言前期准备K8S集群安装 虚拟机设置安装K8S集群k8s部署Nginx 附录1 Docker安装附录2 yum k8s 问题附录3 k8s start问题附录4 k8s master init附录5 node节点添加进集群失败&#xff0c;可以删除节点重新添加 前言 本文指定Docker与K8s版本&#xf…

DynaSLAM-3 DynaSLAM中Mask R-CNN部分源码解析(Ⅱ)

目录 1.FPN 1.1 FPN层原理 1.2 FPN代码解析 2. 候选框的生成 2.1 根据特征图生成候选框 1.FPN 1.1 FPN层原理 在Faster R-CNN网络中&#xff0c;提取特征的时候&#xff0c;将原始数据经过一系列的卷积层&#xff0c;我们只用最后一层的特征图进行提取。 比如五层卷积神经…

C++(36)-VS2019- 动态库调用

1.被调用的动态库 MyDll 2.调用的可执行文件 MyExe 源码实例链接&#xff1a;MFC-VS2019-EXE调用DLL-demo.zip-C代码类资源-CSDN下载 1.MyDll 1.1 MyDll头文件&#xff1a;MyDll.h 声明此动态库为导出动态库。 声明导出函数。 #pragma once#define MYDECLARE_PUB…

【05】FreeRTOS的中断管理

目录 1.什么是中断 2.中断优先级分组 2.1中断优先级分组-介绍 2.2中断优先级分组-配置 2.3中断优先级分组-特点 3.中断相关寄存器 3.1寄存器地址 3.2在FreeRTOS中配置PendSV和Systick中断优先级 3.3中断相关寄存器 4.FreeRTOS中断管理实验 4.1修改freertos_demo.c …

2023.1.30作业-【尝试移植TF-A】

1、解压源码&#xff0c;进入目录如图一 2、解压源码包 3、进入解压后的目录&#xff0c;打入官方补丁 4、查看SD卡的分区&#xff0c;发现正常无需重新分区 5、导入编译工具查看是否正常导入 6、添加设备树等相关文件 7、修改上层目录下的 Makefile.sdk中添加 stm32mp157a-fsm…

chatGPT模型简介

ChatGPT的工作原理 chatGPT 是一款由 OpenAI 开发的聊天机器人模型&#xff0c;它能够模拟人类的语言行为&#xff0c;与用户进行自然的交互。它的名称来源于它所使用的技术—— GPT-3架构&#xff0c;即生成式语言模型的第3代。 chatGPT的核心技术是 GPT-3 架构。它通过使用大…

vue 自动生成swagger接口请求文件

前端: vue-element-admin 后端: .net core (6.0) 找了很多自动生成的代码的&#xff0c;感觉不太行&#xff0c;可能是我不太懂。所以自己根据swagger.json去生成了js请求文件。 后端很简单&#xff0c;就不说了&#xff0c;只要能访问到swagger的地址就可以&#xff0c;主要…

【My Electronic Notes系列——低频功率放大器】

目录 序言&#xff1a; &#x1f3c6;&#x1f3c6;人生在世&#xff0c;成功并非易事&#xff0c;他需要破茧而出的决心&#xff0c;他需要永不放弃的信念&#xff0c;他需要水滴石穿的坚持&#xff0c;他需要自强不息的勇气&#xff0c;他需要无畏无惧的凛然。要想成功&…

【自学Docker】Docker rename命令

Docker rename命令 大纲 docker rename命令教程 docker rename 命令可以用于重命名一个 Docker容器。docker rename命令后面的 CONTAINER 可以是容器Id&#xff0c;或者是容器名。 docker rename语法 haicoder(www.haicoder.net)# docker rename CONTAINER NEW_NAME案例 重…

【Kubernetes 企业项目实战】05、基于云原生分布式存储 Ceph 实现 K8s 数据持久化(下)

目录 一、K8s 对接 ceph rbd 实现数据持久化 1.1 k8s 安装 ceph 1.2 创建 pod 挂载 ceph rbd 二、基于 ceph rbd 生成 pv 2.1 创建 ceph-secret 2.2 创建 ceph 的 secret 2.3 创建 pool 池 2.4 创建 pv 2.5 创建 pvc 2.6 测试 pod 挂载 pvc 2.7 注意事项 1&#xf…

软考高项—第一章信息系统项目管理基础

项目特点 1、临时性&#xff1a;有明确的开始时间和结束时间 2、独特的产品、可交付成果 3、逐步完善&#xff1a;项目团队从开始的粗略计划到详细计划&#xff0c;在到完成项目 4、资源约束&#xff1a;每个项目都需要各种资源保证&#xff0c;资源是有限的 5、目的性&#x…

C语言重点复习大纲

目录数据存储(3星)判断大小端写一个函数判断大小端截断与整形提升数组和指针(5星)几个特殊的指针数组传参字符串数组库函数的实现(4星)atoi与itoamemcpy与memmove内存重叠自定义类型(4星)内存对齐结构体&#xff0c;联合体&#xff0c;枚举位段编译链接(3星)编译和链接的过程条…

循环队列实现---kfifo

循环队列 概述 在优化系统性能时&#xff0c;我们通常需要分析一个单线程程序各模块的功能和性能&#xff0c;然后将这些模块拆分到多个线程中并行执行。而多个线程之间需要加入缓存以实现线程间的通信。如图1所示&#xff1a; 图1&#xff1a;多线程缓存为方便进程间通信&am…