其他分享
首页 > 其他分享> > 计算机组成原理——计算篇

计算机组成原理——计算篇

作者:互联网

 计算机组成原理——计算篇

 

                  进制运算的基础

定义:

  1. 进位制是一种计数方式,又称进位计数法或位值计数法
  2. 用有限种数字符号来表示无限的数值
  3. 进位制的基数或底数:使用的数字符号的数目(二进制:01,十进制:0-9)

常用的进制

  1. 二进制: 用0、1表示的
  2. 二十进制: 玛雅文明的玛雅数字、因努伊特的因努伊特数字
  3. 六十进制: 实践、坐标、角度等量化数据
  4. 十六进制: [0-9]和A、B、C、D、E、F

为什么计算机经常使用8进制&16进制

  1. 计算机喜欢二进制,但二进制表达太长了
  2. 使用大进制位可以解决这个问题
  3. 八进制和十六进制可以满足2^n次方的要求

1024不同进制表达方式

  1. 二进制:0b10000000000
  2. 八进制:0o2000
  3. 十六进制:0x400

二进制运算的基础

​编辑

 

 

​编辑

 

 

​编辑

 ​编辑

 

 

​编辑

 

 

  1. 十进制转二进制(小数

​编辑

 

 

有符号数与无符号数

问题:前面学习的都是正数的二进制表达方式,那么负数怎么办呢?

:在十进制中一般用正负号(+/-)表达正负数,我们可以联想一下计算机也可以用0和1来表示这两种状态,如:

+237=011101101

-237=111101101

怎么判断他是数字位还是符号位?

原码表示法:

  1. 使用0表示正数,1表示负数
  2. 规定符号位位于数值第一位
  3. 表达简单明了,是人类最容易理解的表示法
  4. 使用两个字节,16位的数字做一个例子如图:

​编辑

 

 

原码表示法一些问题

  1. 0有两种表示方式:00、10
  2. 原码进行运算非常复杂,特别是两个操作数符号不同的时候

此时我们需要找到另外一种表达方法来简化这样的操作

 

 

二进制的补码表示法

补码的定义:补码是用来解决负数在计算机中的表示问题的。正数的补码就是其本身;负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1,即在反码的基础上+1。

计算方法:

​编辑

 

 

(x是需要计算的二进制,n是二进制的位数)

例题:

​编辑

​编辑

 

 ​编辑

 ​编辑

 

 

补充:

计算机里都是以补码形式存储数据。

补码的0只有一种表示方式:0,0000。

 

 

二进制的反码表示法

反码的定义:反码是用来辅助原码转换成补码的。正数的反码就是其本身;负数的反码是在其原码的基础上, 符号位不变,其余各个位取反。

计算方法

​编辑

 

 

(x是需要计算的二进制,n是二进制的位数)

例题:

​编辑

 ​编辑

 ​编辑

 

 

原码、补码、反码之间的关系

 ​编辑

​编辑

 

 

小数的二进制补码、反码表示法

计算方法

​编辑

 

 

例题:

​编辑

 

 

定点数与浮点数

定点数:

  1. 概念:小数点固定在某个位置的数称之为定点数
  2. 定点数的表示方法:

 

 

浮点数:

  1. 概念:浮点数是指小数点位置可以浮动的数据
  2. 原理:浮点数它相当于一个定点数加上一个阶码,阶码表示将这个定点数的小数点移动若干位。由于可以用阶码移动小数点,因此称为浮点数。
  3. 浮点数的表示格式:N = S * r^j (S:尾数,r:基数,j:阶码)

         阶码符号位 | 阶码数值位 | 尾数符号位 | 尾数数值位(尾数必须使用纯小数)

​编辑

 

 

4.浮点数的表示范围:假设阶码数值取m位,尾数数值取n位

 

        

5. 浮点数的规格化

​编辑

 

 

6. 例子

​编辑

 ​编辑

 

 

定点数与浮点数对比

 

定点数的加减法运算

定点数的加法运算

计算方法:

​编辑

 

 

(n指的就是比特位数)

例题:

​编辑

 

 ​编辑

 ​编辑

 ​编辑

 

最后一个例题出现了问题:发生了溢出,运算结果无效。溢出是不能解决的,只有规避,所以我们说平时在写代码的时候,如果涉及数值处理的话,一定要特别注意溢出,从程序上避免溢出的计算,否则会导致结果不正确。

怎么判断溢出呢?(双符号位判断法)

​编辑

 

 

使用双符号位进行计算:

​编辑

​编辑

 

 

定点数的减法运算

​编辑

 

 

例题:

 

​编辑

 

浮点数的加减法运算

浮点数加减法运算过程:对阶→尾数求和→尾数规格化→舍入→溢出判断

xy来进行加减法运算:

​编辑

 

 

  1. 对阶:对阶的目的是使得两个浮点数阶码一致,使得尾数可以进行运算

 

 

操作:小阶转换跟大阶一致,尾数进行相应的右移

 

 

  1. 尾数求和

​编辑

 

 

3.尾数规格化(左规):如果不满足此格式,需要进行左移,同时阶码相应变化,以满足规格化

​编辑

 ​编辑

 

 

 

尾数规格化(右规):

 

例:

 

(最后一位是0的话不需要进行加1,舍入后记得阶码要加1)

01入法可能会发生溢出,如:

​编辑

 

 

此时需要进行两次或两次以上的舍入操作

5.溢出判断

综合例题:

​编辑

​编辑

 

 

浮点数的加减运算流程

​编辑

 

 

浮点数的乘除法运算

乘法的计算方法

​编辑

 

 

除法的计算方法

​编辑

 

 

计算流程

​编辑

 

例子

 

​编辑


标签:阶码,计算机,尾数,浮点数,编辑,计算,定点数,原理,运算
来源: https://www.cnblogs.com/ZhouKali/p/16450326.html