【第二章:数据的表示和运算】

这篇具有很好参考价值的文章主要介绍了【第二章:数据的表示和运算】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

知识框架

No.0 引言

探讨的两大主题:一步步递进

  1. 那么现在就需要探究 数据如何以2进制的形式在计算机中表示的呢??
  2. 那么还有就是计算机如何进行数据的算术和逻辑运算的??

No.1 数制与编码

一、进位计数制及其相互转换

我们平常使用的是10进制的数据,然而计算机能够识别的是2进制的01序列串。

主要是权重的不同。一方面符号表示权重,一方面符号的位置表示权重叫位权。比如975;

101001B、1652H、168D

  1. 其它进制数转换为十进制(不同的数码位在不同的位置有不一样的位权)
  2. 二进制<---->八进制、十六进制进行转换(三个二进制位进行组合、四个二进制位进行组合)
  3. 十进制转化为---->任意进制(整数和小数部分分别进行处理)。
  1. 真值和机器数;如果十进制数还带正负怎么办呢??如何在计算机中以2进制存储呢?
  2. 真值:符合人类习惯的数字
  3. 机器数:数字实际存到机器里的形式,正负号需要被“数字化”;0正1负。

二、BCD码

BCD码包括了三种即三种映射关系;那么引入BCD码是为了什么呢?

为什么说是二进制编码的十进制数?答:每四个比特的信息来对应上一个十进制位;

  1. 8421码:
  2. 余3码
  3. 2421码

三、无符号的整数在计算机内部表示和运算

无符号整数:即自然数=0+正整数:”0、1、2、3、4、、、、“

首先是没有符号,然后只是整数。

两个大问题:无符号整数,在计算机硬件中如何表示的呢?

​ :无符号整数,在计算机内部如何进行加法减法运算怎么用硬件实现的呢?

1、表示

第一个大问题:无符号整数,在计算机硬件中如何表示的呢?

  1. 假设机器字长是8位的前提下;(当然现实是机器字长通常是64位or32位的)
  2. 也就是说机器字长是限制了每次多少位数字的运算’下面均以是8位的为举例子。
  3. ①:全部二进制位都是数值位,没有符号位,第i位的位权是2^i-1.
  4. ②:n bit无符号整数表示范围0~2^n-1,超出则溢出,意味着该计算机无法一次处理这么多
  5. ③:可以表示的最小的数全0,可以表示的最大的数全1.

【第二章:数据的表示和运算】

2、加法、减法实现

第二个大问题:无符号整数,在计算机内部如何进行加法减法运算怎么用硬件实现的呢?

  1. 计算机硬件如何做到无符号整数的加法呢?:从最低位开始,按位相加,并往更高位进位
  2. 在加法的时候也就是按照正常的二进制加法进行。而如果溢出的话也就会溢出截断了。

【第二章:数据的表示和运算】

  1. 计算机硬件如何做到无符号整数的减法呢?:减法的话就不是平常那样了,要进行特殊处理
  2. ①”被减数” 不变 "减数”全部位按位取反、末位+1,减法变加法
  3. ②从最低位开始,按位相加,并往更高位进位(加法规则)
  4. ③最高位溢出丢弃,并不影响我们的结果。
  5. 那么为什么多此一举将减法变成加法呢???
  6. 因为:加法电路造价便宜,减法电路造价昂贵若可将减法转变为加法,所以将减法操作变成等价的加法操作,可以更省钱
  7. 那么为什么可以这样取反+1等就可以变化等价呢?这里是数论的知识了。

【第二章:数据的表示和运算】

四、带符号的整数在计算机内部表示和运算

带符号整数:即整数:”-4、-3、-2、-1、0、1、2、3、4、、、、“

首先是有符号,然后只是整数。

两个大问题:带符号整数,在计算机硬件中如何表示的呢?

​ :带符号整数,在计算机内部如何进行加法减法运算怎么用硬件实现的呢?

​ 后面有个总结就是所有的带符号整数的运算都要先将原码转化为补码然后再进行运算。

1、表示

第一个大问题:带符号整数,在计算机硬件中如何表示的呢?

  1. 为什么带符号整数的表示有原码、反码、补码这些东西呢?
  2. 是因为在计算机内部我们表示一个带符号的数值的时候,同一个含义用不同的编码方式表示
  3. 当然不同的编码表示有各自的优点和缺点;

1.1、原码表示

首先带符号整数表示中现以 原码为例子:

  1. 假设机器字长是8位的前提下;(当然现实是机器字长通常是64位or32位的)
  2. 所以由于硬件的限制,那么带符号的整数表示的它的比特位位数是有上限的;
  3. 也就是说机器字长是限制了每次多少位数字的运算’下面均以是8位的为举例子。
  4. 符号位“0/1”对应“正/负”,剩余的数值位表示真值的绝对值
  5. ②若机器字长n+1位,带符号整数的原码表示范围: 一(2^n-1) ≤x ≤ 2^n-1
  6. ③真值0有两种形式:+0和-0 ,[+0]:=0,0000000;[-0]原 =1, 0000000

【第二章:数据的表示和运算】

1.2、原码形式实现加减法运算不行

基于原码表示的有符号整数,如何实现加减法呢?

  1. 如果我们按照无符号的整数进行 从最低位开始往上加,按位相加(❌)。
  2. 但是我们在无符号的整数表示的时候最高位是表示的数值信息,但在这里是符号的信息。所以不行。
  3. 原码的缺点:符号位不能参与运算,需要设计复杂的硬件电路才能处理,费钱!贵!(也可以但是贵)
  4. 所以 科学家发明了这样的方法:用补码表示真值–符号位可以参与运算。(所以参与运算前都要转化为补码)
  5. 即我们在用原码进行实现加减法的时候不方便,所以要将原码的表示形式转化为等价的补码表示即可。

【第二章:数据的表示和运算】

1.3 补码表示

如何进行补码的表示呢在计算机的硬件之中??

其实是 从原码转化过来的:原码–>反码–>补码

不管是原码、反码、补码、这三个的最高位都反映了符号位(0正1负),

所以可能转化为10000000吗这个形式?是的,当一个有符号数在二进制下的表示的最高位为1时,表示该数是一个负数。在进行原码转补码的时候,如果刚好进位到最高位,将会得到补码的最高位为1,即10000000。这个补码所代表的负数通常是最小的负数,也就是-128。因此,当进行原码转化为补码的时候,可能转换得到10000000这个形式。

只不过是补码的符号位可以参与运算。?

【第二章:数据的表示和运算】

如何快速的将 原码和补码进行相互转换呢?两种方式:

第一种计算机中形式:那么计算机中硬件中是如何实现补码到原码的转换的呢?

计算机中是这样实现的:从补码出发,符号位不变,然后数值位取反,最后+1

第二种手动形式:如下图:

【第二章:数据的表示和运算】

1.4 补码实现加法运算

  1. 从最低位开始,按位相加,(符号位参与运算),并且往最高位进位。
  2. 最后我们只保留更低的八位bit,最前边的一位给它丢弃。
  3. 最终得到的结果也是补码的形式,而想要知道数值为多少就需要将这个结果补码转化为原码。

【第二章:数据的表示和运算】

1.5、补码实现减法运算

  1. 因为加法电路造价便宜,减法电路造价昂贵。若可将减法转变为加法,省钱!
  2. 那么怎么转呢?
  3. 即因为A-B=A+(-B); 然后将这些原码转化为补码然后进行加法运算,然后再将最终的补码结果转化为原码结果。
  4. 由于计算机在一开始就把所有的原码转化为补码了;
  5. 即“被减数(补码形式)”不变,【“减数(补码形式)”全部位按位取反、末位+1】变为[-B]补,减法变加法
  6. (补码形式)从最低位开始,按位相加,并往更高位进位。得到最终结果补码形式。

【第二章:数据的表示和运算】

一个具体的带符号数的减法例子:

【第二章:数据的表示和运算】

1.6、原码反码补码特性对比

下面的东西都是在 n+1 位bit的合法表示范围。

各种特性总结如下:

因为补码的那个最小负数转化为位数相同的原码是不可能的。因为范围限制。

【第二章:数据的表示和运算】

溢出问题:关于两个数A和B进行某种运算后,是否发生溢出?―-手算做题可以带入十进制验证,是否超出合法范围

A=-64,B=-64;如果题目是 用 原码进行 讲述 的,那么最后结果保存用原码的话就会溢出;原码范围是-127~127;

而如果A和B都是补码的形式的话,那么最后结果保存是不会溢出的,因为补码范围是-128~127;

1.7、移码表示

那么怎么得到移码呢?

从补码得到:补码的符号位取反即可。

注意:移码只能用于表示整数(且是带符号的整数)

  1. 因为移码是从补码进行转化的,所以一些补码的特性就可以按照着来;
  2. 补码0的形式只有一种即0,00000000则[0]的移码就有一种:1,00000000
  3. 那么补码的 数据范围也是 -128~127(前提是n+1位的bit);

【第二章:数据的表示和运算】

【第二章:数据的表示和运算】

五、定点小数的表示和运算

定点的意思是什么呢?定点的意思是小数点的位置固定。

定点数:定点整数即带符号整数(也就是小数点的位置固定在了最后一位的右下角

​ :定点小数(也就是小数点的位置固定在了 符号位的右下角。

  1. 对于第一个大问题表示中,其实也只是臆想,不是一个bit位来存储的。简称规定。
  2. 定点整数的编码表示:原码、反码、补码、移码
  3. 定点小数的编码表示:原码、反码、补码

5.1、原码中定点整数和定点小数

下面的都是以8bit位来进行说明的。

小数点的位置不一样,导致的 各个bit“位权”不一样。

【第二章:数据的表示和运算】

5.2、定点小数的反码补码表示

与带符号整数的 原码–》反码、补码的转化形式一模一样,

5.3、定点小数的加减运算

对两个定点小数A、B进行加法/减法时,需要先转换为补码

计算机硬件如何做定点小数补码的加法:

①从最低位开始,按位相加(符号位参与运算),并往更高位进位,

②然后再转

计算机硬件如何做定点小数补码的减法:

①“被减数”不变,“减数”全部位按位取反、末位+1,减法变加法;

②从最低位开始,按位相加,并往更高位进位

下面是定点整数和定点小数的比较:如下图:

【第二章:数据的表示和运算】

小数补码的加法运算:也是先将各个转化为补码再看

反正无论是整数还是小数在进行加法运算的时候,都是要按照那个方法进行

因为计算机为了便宜,计算电路都是一样的,

【第二章:数据的表示和运算】

No.2 奇偶校验码

因为在传输的过程中会出现 错误之类的,所以我们必须考虑到数据的校验

可能计算机元器件发生故障什么之类的,可能由于环境的因素噪音的干扰,可能会发生了位错误;01–00

那么我们该怎么才能发现错误呢?

下面是一种可以发现错误的编码机制:奇偶校验

  1. 校验原理:增加一个冗余的校验位bit
  2. 那么怎么检测出错误呢?
  3. 假设我们采用偶校验策略:一个bit发生跳变直接断定发生错误了,那么发生两个bit发生跳变呢?(检测不出来局限性)

【第二章:数据的表示和运算】

No.3 算术逻辑单元(ALU)

一、作用,大致原理

下面是介绍的ALU的一些基本作用:

  1. 算术运算:加、减、乘、除等
  2. 逻辑运算:与、或、非、异或等
  3. 辅助功能:移位、求补等

二、加法器的实现

1、一位全加器

是有一个进位的计数的。

【第二章:数据的表示和运算】

2、串行加法器

如何使用上面的一位全加器 如何实现 多位的加法。循环使用。像那个RNN样的图差不多。

【第二章:数据的表示和运算】

3、并行加法器

【第二章:数据的表示和运算】文章来源地址https://www.toymoban.com/news/detail-442923.html

到了这里,关于【第二章:数据的表示和运算】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Matlab 数字图像 第二章 矩阵及其运算

    Matlab 数字图像 第二章 矩阵及其运算

    目录 2.1 矩阵的创建 2.1.1 直接输入: 2.1.2 载入外部数据文件 2.1.3 利用内置函数创建 2.2 矩阵的寻访 2.2.1 下标元素访问 2.2.2  访问单元素 2.3 矩阵的拼接 2.3.1 矩阵拼接符[] 2.3.2  函数 2.4 矩阵的运算 2.4.1 加减 2.4.2 乘除 2.4.3乘方 2.4.4 按位运算 2.4.5 行列式与秩 2.4.6 逆与迹 2.4.7 矩

    2023年04月09日
    浏览(17)
  • 线性代数第二章矩阵及其运算详解

    线性代数第二章矩阵及其运算详解

    一.线性方程组和矩阵 1.概念 如图所示,该矩阵称为 m行n列矩阵 若行数和列数都等于n,则该矩阵称为 n阶方阵 两个矩阵的行数相等,列数也相等,就称它们为 同型矩阵 若A=(aij)和B=(bij)是同型矩阵,且aij=bij(i=1,2,...,m;j=1,2,...,n),则称 矩阵A与矩阵B相等 ,记作 A=B 2.特殊

    2024年01月25日
    浏览(13)
  • 线性代数中涉及到的matlab命令-第二章:矩阵及其运算

    线性代数中涉及到的matlab命令-第二章:矩阵及其运算

    目录 1,矩阵定义 2,矩阵的运算 3,方阵的行列式和伴随矩阵  4,矩阵的逆  5,克莱默法则  6,矩阵分块  矩阵与行列式的区别: (1)形式上行列式是数表加两个竖线,矩阵是数表加大括号或中括号; (2)行列式可计算得到一个值,矩阵不能; (3)两个行列式相加与两

    2024年02月08日
    浏览(8)
  • 【课后习题】 线性代数第六版第二章 矩阵及其运算 习题二

    【课后习题】 线性代数第六版第二章 矩阵及其运算 习题二

    习题二 1. 计算下列乘积: (1) ( 4 3 1 1 − 2 3 5 7 0 ) ( 7 2 1 ) left(begin{array}{rrr}4 3 1 \\\\ 1 -2 3 \\\\ 5 7 0end{array}right)left(begin{array}{l}7 \\\\ 2 \\\\ 1end{array}right) ⎝ ⎛ ​ 4 1 5 ​ 3 − 2 7 ​ 1 3 0 ​ ⎠ ⎞ ​ ⎝ ⎛ ​ 7 2 1 ​ ⎠ ⎞ ​ ; (2) ( 1 , 2 , 3 ) ( 3 2 1 ) (1,2,3)left(begin{array}{l}3 \\\\ 2 \\\\ 1end{ar

    2024年02月05日
    浏览(21)
  • 第二章VHDL基本知识

    第二章VHDL基本知识

    2.1.1 空白符b,t 2.1.2注释符 单行注释:// 多行注释:/*    8/ 2.1.3标识符 字母,数字,符号,下划线,区分大小写,第一个字符必须是字母或者下划线 2.1.3转移标识符 以开头,以空白结尾, 2.1.4 用来VHDL内部使用的词叫,所有的都是小写 2.1.5数值 0  低电

    2024年02月06日
    浏览(12)
  • 静态时序分析 第二章 基础知识

    静态时序分析 第二章 基础知识

    目录 1. 逻辑门单元 2. 门单元的时序计算参数         2.1 信号转换延时(transition delay)          2.2 逻辑门延时(logic gate delay) 3.  时序单元相关约束         3.1 建立时间(setup time)         3.2 保持时间(hold time)         3.3 恢复时间         3.4 移除时间      

    2023年04月13日
    浏览(12)
  • 第二章(一):Django框架的模型(Model)

    第二章(一):Django框架的模型(Model)

    备注:这里是Django系列文章的所有文章的目录 第一章(一) : Django框架之创建项目/应用/templates、连接MYSQL、配置日志LOGGING、启动django项目 第一章(二):Django框架的模式、路由、视图; 第一章(三):Django框架的视图函数、视图类的认识及常规使用; 第一章(四):Django框架的模板

    2024年02月08日
    浏览(38)
  • 第二章 嵌入式系统硬件基础知识

    第二章 嵌入式系统硬件基础知识

    (1)信号特性 用 “ 逻辑真 ” “ 1 ” 或 “ 确定 ”来表示 高电平 用 “ 逻辑假 ” “ 0 ” 或 “ 不确定 ”来表示 低电平 1和0称为 互补信号 (2)信号转换 1、数字集成电路的分类         按照开关元件的不同,数字集成电路分为两大类:一类是 双极型集成电路

    2024年01月21日
    浏览(17)
  • 第二章 系统集成及服务管理知识点1

    这第二章主要讲了下集成及服务管理的内容、制度、意义、管理办法、以及一些管理方面的服务概念。跟着小老弟把内容给归纳归纳,后面来复习的时候也能够省不少时间! 1信息系统集成及服务管理的内容 在信息化建设过程中,系统集成及服务存在了诸多问题,主要问题:

    2024年02月16日
    浏览(10)
  • 第二章:计算机系统基础知识之计算机网络

      计算机网络是利用通信线路将地理上分散的、具有独立功能的计算机系统和通信设备按不同的形式连接起来,并依靠网络软件及通信协议实现资源共享和信息传递的系统。   计算机网络技术主要涵盖 通信技术、网络技术、组网技术和网络工程 等四个方面。 数据通信

    2024年04月27日
    浏览(13)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包