第2章 数据的表示和运算

目录

2.1 数制与编码

2.1.1 进位计数制及其相互转换

进位计数法

不同进制数之间的相互转换

除基取余法

乘积取整法

2.1.2 定点数的编码表示

真值与机器数

原码

补码

变形补码

移码

2.2 运算方法和运算电路

2.2.1 基本运算部件

1. 一位全加器

2. 串行进位加法器

3. 并行进位加法器

2.2.2 定点数的移位运算

1. 算术移位

2. 逻辑移位

3. 循环移位

2.2.3 定点数的加减法运算

1. 补码的加减法运算

2. 补码加减运算电路

3. 溢出判断

2.2.4 定点数的乘除运算

1. 原码一位乘法

2. 补码一位乘法(Booth算法)

3. 原码除法运算

4. 补码除法运算(加减交替法)

2.2.5 数据的存储和排列

1. 大端方式和小端方式存储

 2. 数据按边界方式存储

2.3 浮点数的表示与运算

2.3.1 浮点数的表示

2.3.2 浮点数的规格化

2.3.3 IEEE 754 标准

 2.4 C语言类型转换与浮点数类型

2.4.1 有符号数和无符号数的转换

2.4.2 长整数转换为短整数

2.4.3 C语言中的浮点数类型


2.1 数制与编码

2.1.1 进位计数制及其相互转换

在计算机系统内部,所有信息都是用二进制编码,这样做的原因如下:

  1.  二进制只有两种状态,使用有两个稳定状态的物理器件就可以表示二进制中的每一位,制造成本低,例如用高低电平或电荷的正负性都可以很方便地表示0和1。
  2. 二进制位10正好与逻辑值真 假 对应,为计算机实现逻辑运算和程序中的逻辑判断提供了便利条件。
  3.  二进制编码和运算规则都很简单,通过逻辑门电路能方便的实现算术运算。

进位计数法

一个r进制数的数值可以表示为K_{n}r^{n}+K_{n-1}r^{n-1}+\cdot \cdot \cdot +K_{0}r^{0}+K_{-1}r^{-1}+\cdot \cdot \cdot +K_{-m}r^{-m},在上述式子中,r为基数,r^{i}是第i位的位权(规定整数最低位为第0位);K_{i}的取值是从0~r-1共r个数码中的任何一个。

不同进制数之间的相互转换

  • 二进制转换为八进制和十六进制

  • 任意进制数转换为十进制数
  •  十进制数转换为任意进制数

采用基数乘除法,对整数部分用除基取余法,对小数部分用乘积取整法,最后将结果拼接。

除基取余法

整数部分除基取余,最先取得的余数为数的最低位,商为0时结束。

乘积取整法

小数部分乘基取整,最先取得的整数为数的最高位,乘积为1.0时结束。

2.1.2 定点数的编码表示

真值与机器数

  1. 真值是机器数所代表的实际值,即带有+-的值。
  2. 在计算机中,通常将数的符号和数值一起编码,将数据的符号数字化,通常用0表示正,1表示负;这种把符号数字化的数称为机器数。

原码

用机器数的最高位表示数的符号位,其余各位表示数的绝对值。

纯整数的原码定义:

  1. 2^n> x\geq0时,[x]=0 x
  2. 0> x\geq -2^n时,[x]=2^n-x

例如x_1=+1110[x_1]=00001110x_2=-1110[x_2]=2^7-1110=1 0001110

纯小数的原码定义:

  1. 1> x\geq 0时,[x]=x
  2. 0\geq x> -1[x]=1-x

例如x1=+0.1101[x_1]=0.1101000x_2=-0.1101[x2]=1-0.1101=1.1101000

若机器字长为n位,原码的表示范围为-(2^{n-1}-1)\leq 2^{n-1}-1

补码

补码出现是让减法操作变为加法,节省了硬件成本。这里主要探讨整数的补码。二进制补码在书上的表示方法:

  1. 正数的补码就是其本身
  2. 负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)

但在实际中,补码的本质是人为规定的一种特殊的模运算,如图。

若字长为n位,则补码的表示范围为

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值