计算机组成原理(一)

文章目录


笔记

常识

1)

32位的计算机
= 一个机器字32位
= 一个字32位
= 4B(4字节)
= 4*8=32位二进制
=32 b

2)

1MB=1024kB=1024 * 1024B=210 *210B=220B=222b

3)秒的换算
在这里插入图片描述
4)
 MIPS的全称是Million Instructions Per Second,每秒百万指令(西方或者国际上的计量体系中1M(兆)=100万=1000000);Mhz,是指单片机CPU的主频兆赫兹。
1(一条指令)/2us(微妙)=0.5MIPS

第一章

进制转换

1)10与2进制互转

法一:短除法

在这里插入图片描述

法二:按权展开法表示十进制

16 8 4 2 1=10010
(18)十进制=(10010)二进制

16+0+0+2+0=18
(10010)二进制=(18)十进制
用展开拳法可以二进制与十进制相互转换
在这里插入图片描述
注:按权展开不是8421码

2)10转其他进制

短除法在这里插入图片描述

3)2转8进制

每三位变一位,用展权法
在这里插入图片描述

4)8转2进制

每一位变三位二进制,也是用展权法
在这里插入图片描述

5)2转16进制

每四位
在这里插入图片描述

6)16转2进制

在这里插入图片描述

第二章

一、数据类型

原码
补码
1)模:2^n+1次方

3%4=3,模是4
22%10=2,模是10
小数的模是2,因为2^0+1=2

2)同余

22%12=10
10%12=10

22与10是同余

二、原码、反码、补码⭐

正数

整数小数都一样
真=符号位+真值=原码:
原码=补码=反码
如:7 =0111 原补反都一样

负数
原码:符号位+真值
补码:
1)其他转补码

①原码转补码
如:原码10010=补码11110

  • 法一 :补码=原码符号位不变,最后一位的数字1,和它后面所有的0不动,而它前面所有位数则取反;
    (特殊案例:负0 即1000的补码是0000)
  • 法二:补码=符号位不变,从原码取反再+1

②反码转补码

  • 补码=符号位不变,从反码最后一位+1

③真值转补码

  • 直接先转原码就行
2)补码转其他

补码转反码
反码=符号位不变,补码最后一位减1
补码转原码

  • 法一:原码=补码符号位不变,最后一位的数字1,和它后面所有的0不动,前面所有位数取反;

  • 法二:原码=符号位不变,最后一位减掉1,然后所有位数取反

反码:符号位不变,原码所有位数取反

在这里插入图片描述

移码

移码就是在真值X上加一个常数(偏置值),相当于X在数轴上向正方向平移了一段距离,这就是“移码”一词的来由
在这里插入图片描述

机器字长为8

如:-1101,八位机器字长=10001101,符号位算一位

三、⭐机器数的定点表示和浮点表示

在计算机中进行算术逻辑运算时,需要指明小数点的位置,根据小数点的位置是否固定分为定点表示和浮点表示。

定点表示

1)定点小数:

对于计算机来说,浮点定点的概念是看不见的,因为它只能看到:0…00001110,至于它表示多少,是逻辑层面的设置。你如果让它是int那就按照int表示法对每个位赋予意义,如果你让它是float就按照float表示法赋予意义。

对于00011100 表示的定点数:

如果我们设定小数点是位于最后一位的,即00011100. 则其表示28
若设定小数点位于后三位的,即00011.100 则其表示3.50=22+21+2-1
若设定小数点位于后四位的,即0001.1100 则其表示1.75
可以看到:

小数位数越多,表示的精度越高。若小数点后有n位,则其表示的最大精度为1/(2^n)(这里相当于将二进制切换到十进制来看精度。);
整数位数越多,可表示的最大值越大。
正小数:
即纯小数,小数点的位置笃定在最高位有效数字之前,符号位之后,记为Xs.X1X2X3…(所以他的值不超过1,他)
在这里插入图片描述
第一种情况:真值X=0.1111111 ,最大正数

1-2-7=0.1111111 - 0.000001=0.1111110=0.127

第二种情况:真值X=0.000001,最小正数

2-7=0.000001=0.1

负小数
在这里插入图片描述
原码表示最小负小数:1.11111(绝对值最大的负数,即变成正数)
补码表示最小负小数:1.00000(绝对值最大的负数)

在这里插入图片描述

2)原码补码定点小数表示范围

在这里插入图片描述
8位机器字长:7位数值位+1位符号位
所以8位最多能表示小数十进制127/128
因为2-7=1/128
所以1-2^-7=127/128

3)定点整数

定点整数:即纯整数,小数点位置隐含固定在最低位有效数字之后。表示如下图:在这里插入图片描述

4)原码补码定点整数表示范围

在这里插入图片描述
在定点表示法中,参加运算的数以及运算的结果必须保证落在该定点数所能表示的数值范围内,否则发生“溢出”,这时计算机或出现终止运算操作,而进行溢出处理操作。(详细看第四章第二节)

浮点表示法

浮点数的解释

浮点数:就是小数点的位置根据需要而浮动。
例如: N=M×rE
r 为浮点数阶码的底,与尾数的基数相同,通常r=2
E和M都是带符号数,E叫做阶码,M叫做尾数。
在大多数计算机中,尾数为纯小数,常用原码或补码表示;阶码为纯整数,常用移码或补码表示。

)浮点数一般机器数结构

下图是一般结构,看看就好,一般主要是理解IEEE754的结构
在这里插入图片描述

浮点数的底是隐含的,在整个机器数中不出现。阶码的符号位为es,阶码的大小反映了在数N中小数点的实际位置;尾数的符号位为ms,它是整个浮点数的符号位,表示了该浮点数的正负。

在这里插入图片描述

1)浮点数规格化:指数e与尾数M

如:1001.1
规格化=1.0011*23
所以e=3,M=1.0011,m=0011
讲IEEE754段浮点数规格化的数值:

m通常写成:1.f,即 f 这里是0011
浮点数小数部分有效数字的精度主要由尾数的位数来决定

2)阶码=移码:E=e+偏移量

在这里插入图片描述
阶码E的大小反映了数字中小数点的实际位置,且浮点数表示范围由阶码的位数来决定

)浮点数的典型数值

在这里插入图片描述

3)IEEE754单精度格式(float):32

在这里插入图片描述

计算机中存储:符号位(1位)+阶码(8位)+尾数(23位)
S+E+M

符号位1位,阶码8位,阶码偏移量127(即原阶码加127),尾数23位,约定小数点位于尾数域的最前面
练习一:将20.5用短浮点数表示。

  1. 20.5为正数故符号位为S=0
  2. 首先将其转化为二进制数(20.5)十进制 = (10100.1)二进制
  3. 规格化浮点数:10100.1 = 1.01001*24,得e=4,M=01001
  4. E阶码=e+127:4+127 = (131)十进制 = (10000011)二进制
  5. 尾数小数部分即M为:01001000000000000000000(补到23位)

故20.5的单精度浮点表示为:S+E+M
0/10000011/01001000000000000000000
练习二:将段浮点数 C1C90000H转十进制数

  1. 转十进制:1211290000
  2. 再转成二进制:1100/0001/1100/1001/0000
  3. 划分:1/10000011/10010010000
  4. 所以:S=1即负号(尾符),E=10000011,M=10010010000
  5. e=E-偏移量=10000011-1111111=100即(4)
  6. 所以e=4,m=1.f =1.1001001(尾符.尾数)
  7. 规格化写出数字=1.1001001*24
  8. 非规格化=11001.001=25.125

练习三
在这里插入图片描述
在这里插入图片描述

练习四:
在这里插入图片描述
练习五:
在这里插入图片描述

四、非数值表示

字符数据通常是指字符、字符串、图形符号、汉字等各种数据

3.1字符和字符串的表示

3.11,ASCII码:
由7位二进制表示的0-127总的128位字符,
表示十进制0-9、
字母大小写52个、
34个专用字符
32个控制字符组成。其中96位是可打印字符。3第2个是SP键,127值即第128位位DEL键位。如下图:
在这里插入图片描述
A:100 0001
B:100 0010
C:100 0011

在计算机中,一个字符由一个字节来存放,其中右边的7位表示不同字符代码,左边的第1位奇偶校验码,用来检验错误,也可以用以西字符和中文汉字的区分位。

1)字符串的存放。

字符串是指一串连续的字符,通常的他们在存储器中占用一片连续的空间,每个字节存放一个字节代码,每32位两个字符。而且,字符串的所有字符在物理存储上也是连续的。这种存储方法成为向量法。

向量法存储字符串是最为简单和节省空间的方法。但是涉及到字符串的删除和插入操作,字符串需要全部重新分配空间,所以将要花费更多的时间。为了这一缺点的克服,串表法应运而生。在串表法中,所有字符串代码的后面有一个链接字,链接字中存放下一个字符的存储单元地址。所以串表法不要求字符串之间的物理邻接。但是克服了向量法的缺点之外,这一方法也在物理空间上造成存储单元的碎片化,空间的利用率低下。

2)汉字的表示

汉字的编码问题是计算机遍及传播的首要克服问题。在汉字的表示中,由区位码-国标码-机内码-字形码的几种状态。

区位码:

汉字的区位码由4位字节组成。将汉字GB2312-80的6763个汉字编码成94个区,每个区中存放94个位汉字。区位组成一个二维数组。区位码中前2位表示区号,后2位是位号。 区号和位号都是使用十进制表示的。区号和位号都是取值在1-94区间。例如在区位码的二维数组中,“中”在54区的48位,则“中”字的表示位“54-48“。

在区位码中,布局是由规律的,其中1-15区表示的是西文字母、数字和图形符号,以及用户自定义的专用符号;在16-55区为一级汉字;第56-87区为二级汉字;87区以上的为空白区。供新造汉字的使用。

国标码:

汉字的国标码又叫做汉字交换码。主要用于汉字信息系统之间或者通信系统之间的交换信息使用,在1981颁布的GB2312-80中,收集汉字6763个。其使用两个字节表示。所以表示的汉字范围:128*128=16384个。

机内码:

汉字在计算机内部其内码是唯一的。因为汉字处理系统要保证中西兼容,党系统中同时存在ASCII码和汉字国标码使,会二义性。
GB码的机内码为二字节长的代码,它是在相应GB的每个字节最高位上加1,
汉字可以通过不同的输入码输入,但是其在计算机内的内码是唯一的。

三者的转化:

国标码 = 区位码(16进制)+2020H(十进制是加上32)

汉字内码 = 国标码(16进制)+8080H

欠:
例:“春”的区位码为“20-26”(十进制表示),求国标码
(20)十进制 =(14H)

字形码

是指确定一个汉字字形点阵的代码。凡比划出记为1,否则记为0;显然点阵越大汉字质量越高,每个汉字所占用的字节数就会越高

统一代码Unicode

目的:多文种、大字量、多用途而重新设计的编码方法
16位表示每个符号
共有2的16次方=65536个不同字符

8421bcd码和数串的表示
⭐ 展权法与8421bcd码的区别

BCD:用四位二进制来表示一位十进制,与虽然都是二进制数,但与我们的普通展权法不一样
64 32 16 8 4 2 1
(74)十进制=&#x

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值