4。计算机组成原理(1)数据表示和运算

news2024/11/24 4:28:24

嵌入式软件开发,非科班专业必须掌握的基本计算机知识

核心知识点:数据表示和运算、存储系统、指令系统、总线系统、中央处理器、输入输出系统

一 进位计数法和不同进制数的相互转换

其他进制(b),转十进制的计算公式 

十进制数,转其他进制(b),实际上就是求Ai的过程

对于整数部分,第i次除以基数b所得到的余数即为Ai,(i为1、2、..、n)
对于小数部分,第i次乘以基数b所得到的整数部分即为A-i.(i为0、1、...、n)
注意每次乘法之后要把个位置0

例:十进制7562.03125转十六进制 . 结果为1D8A.08

二进制和八进制、十六进制互相转换

八进制就三个一位,十六进制就四个一位

 二 BCD码和校验码

1、BCD码 一种编码方式,用二进制来编码的十进制数,常用的为8421码、2421码、余3码

2、传输数据校验:奇偶校验码

奇校验码:整个校验码中1的个数为奇数

偶校验码:整个校验码中1的个数为偶数 

3、海明码 (不仅能发现错误,还能纠正错误)

设:数据有m(message)位,校验码有p(parity)位:

则:校验码一共有2的p次方种取值;

若想通过校验码指出任一位上发生的错误必须满足:

2p-1>=m+p

由m = 4,得p >= 3

要求,在2的n次方的位置上,其次,校验码要与数据位建立某种关系,方便纠错

p1、p2、p3处是0还是1,是根据要求的奇偶校验来的。

4 循环冗余校验码(多项式校验码)(CRC校验码)

循环冗余校验码(Cyclic Redundancy Check,CRC)是一种常用的网络传输错误检测技术。该技术通过将要传输的数据进行编码,并在接收端对接收到的数据进行解码,从而验证数据传输中是否发生了错误。 CRC 算法的基本思想是在原数据后面添加若干个位数为 0 的校验码,然后根据这些数据计算出一个固定长度的校验码,将其添加到数据中一起传输。接收端再次计算校验码,与接收到的校验码进行比较,如果不一致则说明数据传输存在错误。

CRC 算法的特点是具有“循环性”,即生成校验码的过程可以看做将原数据序列除以一个固定的除数,在模 2 加法下得到的余数。因此,CRC 码也被称为循环码。同时,CRC 码的长度通常为 16 位、32 位、64 位等固定长度,不同的长度会影响校验码的重复周期,从而影响误检率和漏检率。

CRC 码的优点是具有高效性和可靠性,可以在不增加数据传输量和延迟的情况下完成检测任务,并且在大多数情况下可以实现无误检。同时,CRC 码的应用范围非常广泛,包括数据通信、存储介质、无线电通信等多个领域。

三 定点数的表示和运算

在计算机中,定点数是指采用固定小数点位数的一种表示方法,该表示方法将小数点固定在某一位置(因为计算机中不会去存储一个小数点),通常是小数点右边第 n 位,然后将整数和小数部分分别存储在不同的位域中,以便计算机能够对它们进行运算处理。定点数通常用于表示需要高精度计算的数据,如金融数据和图像处理等领域。

在定点数表示法中,整数部分和小数部分所占的位数是一定的,这意味着它们所能表示的范围和精度是固定的。例如,如果采用 16 位的定点数表示法,其中 8 位表示整数,8 位表示小数,则可以表示的最大值是 2^7-1.999(即最高位为符号位),而且只能表示到 2^-8 的精度。因此,在使用定点数进行计算时,需要事先考虑好精度和范围的限制,以免出现截断误差等问题。

另外,相对于浮点数来说,定点数的计算速度更快、精度更高,但是它的表示范围和可调节精度较少。因此,在具体应用中需根据实际情况选择合适的表示方法。

 

 

知识点:真值(实际值,有正负号)与机器数(没有正负号,用01代替)

机器数的有符号数、有原码、补码、反码、移码四种形式

机器数的原码表示

但现在仍存在一个问题,即机器数做加法只能两个正数相加、而不能加负数,因此可以借助时钟原理 改为 +1 0 0 0 0

机器数的补码表示(负值不同)

机器数的反码表示

定点数的移位运算

 

定点数的加减运算,注意:符号位也参与运算(需要注意溢出判断

原码与补码互相转换公式

溢出判断,两个正数相加得负数,原因是数值位不足。 

(正数加正数、负数加负数、正数减负数、负数减正数)

基于一位符号位做溢出判断

基于两位符号位做溢出判断

 

定点数的乘法运算 

定点数的除法运算

四 浮点数的表示和运算

计算机中的表示方式

其中阶码反映浮点数的范围大小和小数点的实际位置

其中尾数反映浮点数的精度

规格化浮点数(把尾数(非零)最高位为有效值的浮点数称之为规格化浮点数)

浮点数的加减法

结果规格化的左规与右规、舍入、溢出判断

五 IEEE754标准及ALU

算术逻辑单元ALU

算术逻辑单元(Arithmetic Logic Unit,简称 ALU)是计算机的重要组成部分之一,用于执行各种算术和逻辑运算。它位于CPU核心中央,主要负责对寄存器中的数据进行加减乘除、与或非、移位等运算操作。

ALU 由多个基本逻辑电路组成,包括加法器、减法器、与门、或门、非门等。其中加法器和减法器是 ALU 的核心部件,它们用于执行加减运算。与门、或门和非门则主要用于逻辑运算,比如与、或、非等。移位电路则用于在二进制数中实现左移和右移操作。

ALU 的输入是来自寄存器中的两个数据和一个控制信号,控制信号指示需要执行何种运算操作。输出则是运算结果,也保存在寄存器中以供后续的运算使用。

ALU 的性能对整个计算机的运行速度和效率有很大影响。因此,在设计 ALU 时,需要考虑到寄存器数量、位数、运算类型和速度等因素,以满足不同应用场景的需求。同时,了解和掌握 ALU 的工作原理和结构,对于深入理解计算机的运行原理和进行计算机系统设计和开发等方面都具有重要意义。

 

 

 

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

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

相关文章

Linux系统编程——多线程[上]:线程概念和线程控制

目录 1.再谈页表 2.Linux线程概念 2.1pthread原生库的基本使用 2.2PID和LWP 2.3Linux线程的资源以及优缺点 2.4Linux线程健壮性问题 2.5可重入函数和线程独立栈 3.Linux线程控制 3.1Linux线程终止 3.2Linux线程等待 3.3线程取消 3.4线程分离 使用线程库的注意事项…

【Python入门】Python基础语法

前言 📕作者简介:热爱跑步的恒川,致力于C/C、Java、Python等多编程语言,热爱跑步,喜爱音乐的一位博主。 📗本文收录于Python零基础入门系列,本专栏主要内容为Python基础语法、判断、循环语句、函…

净利润同比增长48.9%,中国平安“一览众山小”

中国平安价值迸发的速度,或许超过了所有人的想象。 4月26日晚,中国平安发布2023年一季度业绩报告,许多自媒体用“炸裂”来形容其亮眼的财务数据。财报显示,第一季度,集团实现营收2537.78亿元,同比增长30.8…

农机电招平台~java

摘要 随着农机电招行业的不断发展,农机电招在现实生活中的使用和普及,农机电招行业成为近年内出现的一个新行业,并且能够成为大群众广为认可和接受的行为和选择。设计农机电招平台的目的就是借助计算机让复杂的销售操作变简单,变…

LeetCode:383. 赎金信

🍎道阻且长,行则将至。🍓 🌻算法,不如说它是一种思考方式🍀 算法专栏: 👉🏻123 题解目录 一、🌱[383. 赎金信](https://leetcode.cn/problems/ransom-note/)…

DOM概述

DOM概述 什么是DOM对象树化的DOM模型DOM 节点 如何获取DOM元素如何更改我们的DOM模型常用属性修改控制样式属性 事件事件监听 事件类型鼠标事件键盘事件焦点事件文本框输入事件 事件对象回调函数DOM 节点插入节点插入节点删除节点查找节点父子关系兄弟关系 什么是DOM 当网页被…

SPSS如何进行因子分析和主成分分析之案例实训?

文章目录 0.引言1.因子分析2.主成分分析 0.引言 因科研等多场景需要进行绘图处理,笔者对SPSS进行了学习,本文通过《SPSS统计分析从入门到精通》及其配套素材结合网上相关资料进行学习笔记总结,本文对因子分析和主成分分析进行阐述。 1.因子分…

Android:LeakCanary原理的简单理解和使用

LeakCanary原理的简单理解和使用 1、背景2、LeakCanary2.1、LeakCanary 工作原理2.1.1、检测未被 GC 回收的对象2.1.2、转储堆2.1.3、分析堆2.1.4、对泄漏进行分类 2.2、LeakCanary 使用2.2.1、引入依赖2.2.1.1、原理 2.2.2、配置 LeakCanary2.2.3、检测内存泄漏 3、Fragment 和…

Hystrix断路器 (豪猪)-保险丝

一、概述 重点:能让服务的调用方,够快的知道被调方挂了!不至于说让用户在等待。 Hystix 是 Netflix 开源的一个延迟和容错库,用于隔离访问远程服务、第三方库,防止出现级联失败(雪崩)。 雪崩&am…

自动驾驶行业观察之2023上海车展-----车企发展趋势(2)

自主品牌发展 比亚迪:展示3款新车,均于2023年年内上市 比亚迪在本次展会上推出了3款新车:宋L概念车(王朝系列)、驱逐舰07(海洋系列)、海鸥(海洋系列)。 • 宋L&#x…

FreeRTOS:任务的创建和删除

目录 一、函数xTaskCreate二、函数xTaskCreateStatic三、函数xTaskCreateRestricted四、函数vTaskDelete五、任务创建和删除(动态)代码5.1实验要求5.2程序代码 一、函数xTaskCreate 此函数用来创建一个任务,任务需要RAM来保存与任务有关的状…

Mysql数据库基本操作(增删改查)

目录 一、数据库的基本操作1.1 登录数据库1.2 创建数据库并进入数据库 二、查看数据库结构2.1 查看数据库信息2.2 查看数据库中包含的表及表结构2.3、常用的数据库类型 三、Mysql数据文件3.1 MYD文件3.2 MYI文件3.3 MyISAM存储引擎 四、SQL 语句1、 DDL数据定义语言1.1 删除指定…

〖Python网络爬虫实战㉒〗- 数据存储之数据库详解

订阅:新手可以订阅我的其他专栏。免费阶段订阅量1000 python项目实战 Python编程基础教程系列(零基础小白搬砖逆袭) 说明:本专栏持续更新中,目前专栏免费订阅,在转为付费专栏前订阅本专栏的,可以免费订阅付…

Eureka、Zookeeper、Consul服务注册与发现

一、Eureka服务注册与发现 1.1 概念 Eureka 是 Netflix 公司开源的一个服务注册与发现的组件 。 Eureka 和其他 Netflix 公司的服务组件(例如负载均衡、熔断器、网关等) 一起,被 Spring Cloud 社区整合为Spring-Cloud-Netflix 模块。 Eure…

校招失败后,在小公司熬了 2 年终于进了百度,竭尽全力....

其实两年前校招的时候就往百度投了一次简历,结果很明显凉了,随后这个理想就被暂时放下了,但是这个种子一直埋在心里这两年除了工作以外,也会坚持写博客,也因此结识了很多优秀的小伙伴,从他们身上学到了特别…

【JavaEE】TCP协议的十大原理保姆讲解(Transmission Control Protocol)

博主简介:想进大厂的打工人博主主页:xyk:所属专栏: JavaEE初阶 上一篇文章讲了UDP协议,那么这篇文章我来讲讲TCP协议,TCP协议相对UDP协议难一些,内容相对更多。 TCP,即Transmission Control Protocol&…

AArch32 AArch64 Registers map详细解析与索引

1、AArch32 Registers AArch32 系统寄存器索引。 例如第一个寄存器ACTLR点击后解析如下: 2、AArch64 Registers AArch64 系统寄存器索引。 3、AArch32 Operations AArch32 系统指令索引。 例如第一个寄存器ACTLR_EL1点击后解析如下: 4、AArch…

springboot+vue考研资讯平台(源码+文档)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的考研资讯平台。项目源码以及部署相关请联系风歌,文末附上联系信息 。 💕💕作者:风歌&a…

干翻Mybatis源码系列之第六篇:Mybatis缓存内容概述

前言 一:后续Mybatis我们会研究那些内容? Mybatis核心运行源码分析(前面系列文章已经探讨过) Mybatis中缓存的使用 Mybatis与Spring集成 Mybatis 插件。 Mybatis的插件可以对Mybatis内核功能或者是业务功能进行拓展&#xff0c…

David Silver Lecture 3: planning by dynamic programming

1 Introduction 1.1 定义 定义: Dynamic: sequential or temporal component to the problem Programming: optimising a program: a policy 核心思想: 将复杂问题拆解成简单子问题 1.2 Requirements for dynamic programming Optimal substructure …