计算机系统的组成

第二章:计算机系统组成

一、信息表示及存储

数据是反映客观事物属性的记录,是信息的具体表现形式。数据经过加工处理之后,就 成为信息;而信息需要经过数字化转变成数据才能存储和传输。

数据信息分为数值型和非数值型。

计算机能够区分不同的信息,是因为它们采用了不同的编码规则。

1. 数制

数制(也称计数制)是指用一组固定的符号和统一的规则来计数的方法。十进制(十进位计数制):生活中常用

二进制:计算机中使用

除此:还有八进制,十六进制

  1. 四个概念

数码:数制中表示基本数值大小的不同数字符号 基数:数制中使用数码的个数

位权:数制中每个位置的价值

标识(后缀):为了区分不同的进制,在数字后面加上相应的字母或者括号外加上数字下标。比如(66)10 和 66D 都表示十进制数:66

|------|---------------------------------|----|-----|-------|
| 进位制 | 数码 | 基数 | 位权 | 标识 |
| 二进制 | 0,1 | 2 | 2n | B |
| 八进制 | 0,1,2,3,4,5,6,7 | 8 | 8n | O 或Q |
| 十进制 | 0,1,2,3,4,5,6,7,8,9 | 10 | 10n | D 或省略 |
| 十六进制 | 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F | 16 | 16n | H |
| R 进制 | 0~R-1 | R | Rn | |

规则: 进位规则,多少进制就满多少进 1

借位规则,多少进制(向高位)借一位就当多少

|-------------|---------------|--------|---------------|
| 十进制下: | 8+2=10 | 9+2=11 | 10-3=7 |
| 八进制下: 二进制下: | 6+2=10 1+1=10 | 6+3=11 | 10-2=6 10-1=1 |

十六进制下: 8+2=A 8+8=10 11-2=F

练习 1:判断 102B 7Q ABCDF 是否正确练习 2:6+2=10 判断几进制?

  1. 进制转换
  1. 十进制àR 进制

整数:除以R 反向取余

小数:乘以R 正向取整(取整变 0) 例:20.625D=10100.101B

66.5D=102.4Q

30.5D=1E.8H

练习: 29.125D= B

R 进制à十进制

乘权求和法:每一位的值乘以对应的价值(位权) 标位权时注意两点:

①从个位开始标,小数和整数分开

②位权是 0 指数开始例:10110.011B=22.375D

16.6Q=14.75D

8A.4H=138.25D

练习: 1010.101B=A.5D

  1. 8421 拼凑法:二进制ßà十进制

|----|------|-----|-----|-----|----|----|----|----|----|----|----|
| 2n | 210 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 |
| | 1024 | 512 | 256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |

例:25D=11001B 10110B=22D

练习: 1011B=11D

35D=100011B

  1. 二进制à八进制/十六进制分组转换法:

二进制à八进制:3 位转成 1 位二进制à十六进制:4 位转成 1 位

注意两点:

①以小数点为界,整数和小数分开

②整数位数不够在前面添 0,小数位数不够在后面添 0

例 :10101.1B=25.4Q 110101.1101B=35.DH

练习:110001.11B=61.6Q

  1. 八进制/十六进制à二进制
    还组转换法

八进制à二进制:1 位还成 3 位十六进制à二进制:1 位还成 4 位

例 :16.32Q=1110.01101B F.3DH=1111.00111101B

练习:ABC.DH=101010111100.1101B

  1. 八进制ßà十六进制以二进制为桥

八进制(十六进制)à二进制à十六进制(八进制) 例:56.3Q=2E.6H

练习: 3D.2H=75.1Q

小数点移位 :

对于R 进制,小数点左移 n 位,数变为原来的R-n 倍对于R 进制,小数点右移 n 位,数变为原来的Rn 倍

例:对于二进制数 110.11011 小数点右移 2 位后得到的新数是原来的(4)倍。

练习:一个八进制数,小数点左移 2 位后得到的新数是原来的(1/64)倍。

  1. 二进制的算术逻辑运算
算术运算:加减乘除

加 :0+0=0,0+1=1,1+0=1,1+1=10 减:0-0=0,1-0=1,1-1=0,10-1=1

乘 :0*0=0,0*1=0,1*0=0,1*1=1 除:0/1=0,1/1=1

例:设有二进制数 A(11001),B(101),分别求 A+B,A-B,A*B,A/B(除法可用十进制

1744/16 引入)。A+B=11110 A-B=10100

A*B=1111101 A/B=101

逻辑运算:与,或,非,异或

与(∧):0∧0=0,0∧1=0,1∧0=0,1∧1=1

见 0 为 0,全 1 为 1

或(∨):0∨0=0,0∨1=1,1∨0=1,1∨1=1

见 1 为 1,全 0 为 0

非(!):!1=0,!0=1

0 变 1,1 变 0

异或(○+ ):0○+ 0=0,0○+ 1=1,1○+ 0=1,1○+ 1=0

相同为 0,不同为 1

例:设有二进制数A(1010),B(1101),分别求 A∧B,A∨B,!A,A○+ B。 A∧B=1000

A∨B=1111

!A=0101 A○+ B=0111

2. 计算机中信息的表示

1 )信息的单位

位(bit):计算机中最小的数据单位是二进制的一个数位,简称位(比特),一般用 b 表示。字节(Byte):字节是计算机中存储信息的基本单位。

字:CPU 一次性传输,运算或处理的二进制数据

字长:CPU 一次性传输,运算或处理的二进制数的位数比如前面所说的 8 位机,16 位机

注意:

①最小单位---位(bit 或b)

②基本单位---字节(Byte 或B)

练习:32 位机指最大能够处理 32 位十进制的计算机。(×) 单位换算

规定将 8 位二进制称为一个字节,1B=8b 一个字节=8 位二进制

一字节=8 位

1KB=1024B=210B

1MB=1024KB=220B

1GB=1024MB=230B

1TB=1024GB=240B

练习: 2MB=221B

232B=4GB

1 )数值表示
原反补

计算机中的信息都是由二进制组成。无符号数(0,1,2,3,„„)

有符号数(-3,-2,-1,0,1,2,3,„„)

在外界我们可以用+表示正数,-表示负数。但是在计算机内部二进制 0 和 1 怎么表示正负呢?+和-是两种状态,0 和 1 也是两种状态。所以在计算机中如果一个数是有符号数,则把这个数的最高位当作符号位,符号位为 0 表示该数为正数,符号位为 1 表示该数为负数。

(0 正 1 负)

例:用 8 位表示一个数。

10001101 负数

00001101 正数

在计算机中采用原码,反码,补码的形式对数值进行统一。

原码:通常把最高位当作符号位,其余个数作为数值,并规定 0 表示正数,1 表示负数反码:正数的反码与原码相同,负数的反码是原码基础上符号位不变,其余位取反

补码:正数的补码与原码相同,负数的补码是反码基础上加 1。

例:分为求出+25 和-25 的八位原码,反码和补码。(一般情况下是用 8 位来表示,如果题目中没有说是多少位,默认按 8 位来就可以了。)

①不考虑正负号,将 25 转换成二进制

25D=11001B

|-------------|----------|
| ② +25 | -25 |
| 原码:00011001 | 10011001 |
| 反码:00011001 | 11100110 |
| 补码:00011001 | 11100111 |

练习:分为求出+16 和-16 的原码,反码和补码。

①不考虑正负号,将 16 转换成二进制

16D=10000B

|-------------|----------|
| ② +16 | -16 |
| 原码:00010000 | 10010000 |
| 反码:00010000 | 11101111 |
| 补码:00010000 | 11110000 |

n 位二进制表示数(十进制)的范围

|--------|-----------------------|
| n 位二进制 | 无符号数的范围:0~2n-1 |
| n 位二进制 | 有符号数的范围:-2n-1~2n-1-1 |
| n 位二进制 | 状态数(数的个数):2n |

常用的 8 位和 16 位

27=128 28=256

215=32768 216=65536

练习 1:

8 位二进制能表示的有符号数的范围是( ),无符号数的范围是( )

练习 2:

①8 位二进制能够表示的最大的数是( )

A.128 B.255 C.127 D.256

②8 位二进制能够表示的数有( )

A.128 B.255 C.10 D.256

练习 3:

16 位二进制能够表示的数值的个数是(65536)个。

机器数的表示

在计算机中,处理的数值可能带有小数。根据小数点的位置是否固定,将数值分为定点 数和浮点数。

定点整数:101 定点小数:0.111

浮点数:

N=±M*R±E

(比如十进制情况下:0.125*105)

M 称为数N 的尾数,决定了数的精度。

E 称为数N 的阶码,决定了数的范围。

练习:

①浮点数中重要的两个部分分别是(尾数)和(阶码)。

②浮点数中尾数决定了(精度),阶码决定了(范围)。

3 )信息编码
BCD

计算机中使用的是二进制,而人们习惯使用的是十进制数。因此,输入时要将十进制数 转成对应二进制数,而输出时,要将二进制数转成对应十进制数。

BCD 码有 8421BCD 码,2421BCD 码,5211 码,余 3 码等

最常用的BCD 码为 8421BCD 码,用 4 位二进制表示 1 位十进制。

|-----|------|------|------|------|------|------|------|------|------|------|
| 十进制 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 二进制 | 1001 | 1000 | 0111 | 0110 | 0101 | 0100 | 0011 | 0010 | 0001 | 0000 |

字符编码

ASCII :美国信息交换标准代码(西方) 标准 ASCII
①1Byte,最高位为 0,128 个字符(0-127)

②标准ASCII 只用了低七位,最高位并未使用,所以: 表示,组成,构成---7 位

占用---8 位

③并不是所以ASCII 字符都可以显示(0-31 和 127)

④ASCII 值比较:空格<数字<大写字母<小写字母

⑤对应大小字之间相差在 32D

练习:已知 h 的ASCII 码为二进制的 1101000,求F 的十进制ASCII 码为( )。 ASCII

扩展ASCII:1Byte,最高位为 1,128 个字符(128-255)

汉字编码

GB2312-80 (也称为 GB2312

区位码

最小区位码为:0101D

描述了汉字在区位表中的位置,由 4 位十进制组成,前两位叫区码,后两位叫位码。国标码

①国标码=区位码+2020H

②规定一个汉字占两个字节,每个字节最高位为 0

②收集 6763 个汉字

一级汉字(常用汉字):3755 个,按拼音字母排序二级汉字(非常用汉字):3008 个,按部首排序

机内码:也称内码

①机内码=国标码+8080H

②最小机内码为A1A1H

③为了与西文字符进行区别,所有汉字机内码在国标码的基础上,把两个字节每个字节 的最高位为成 1,就得到了机内码

④机内码是唯一的

注意:机内码两个字节,每个字节最高位为 1

练习:已知某汉字的区位码为 3642,求其机内码。

注意:区位码从十进制转十六制时区码和位码分开转换

36D=24H 42D=2AH

①3642D= 242AH

②国标码=区位码+2020H

国标码=242AH+2020H=444AH

③机内码=国标码+8080H

机内码=444A+8080H=C4CAH

汉字编码除了 GB2312 之外,还有GBK,BIG5,GB18030,Unicode(UTF-8) 注意:汉字不能用ASCII 编码,可以用Unicode 编码

汉字输入码(外码)外码不唯一音码

形 码 音形码流水码

**汉字字型码(又称输出码,也称汉字字模)**矢量字模:不易失真

点阵字模:易失真

字库中存放的是汉字字型码

点阵字模中一个点占二进制的一位,所以 n*n 的点阵字模占(n*n/8)个字节。比如:16*16 的点阵字模占 32 字节

练习 1:100 个 16*16 的点阵字模占(3200)个字节

练习2:如果按7*9 点阵字模占8 个字节计算,则用7*9 的全部英文字母构成的字库占用(416)个字节。

计算机内部有 6 个字节分别为:A5H,C5H,54H,78H,D9H,E3H,其中有()个汉字,()个西文。

相关推荐
此生只爱蛋18 分钟前
【手撕排序2】快速排序
c语言·c++·算法·排序算法
咕咕吖1 小时前
对称二叉树(力扣101)
算法·leetcode·职场和发展
九圣残炎1 小时前
【从零开始的LeetCode-算法】1456. 定长子串中元音的最大数目
java·算法·leetcode
lulu_gh_yu1 小时前
数据结构之排序补充
c语言·开发语言·数据结构·c++·学习·算法·排序算法
丫头,冲鸭!!!2 小时前
B树(B-Tree)和B+树(B+ Tree)
笔记·算法
Re.不晚2 小时前
Java入门15——抽象类
java·开发语言·学习·算法·intellij-idea
为什么这亚子3 小时前
九、Go语言快速入门之map
运维·开发语言·后端·算法·云原生·golang·云计算
3 小时前
开源竞争-数据驱动成长-11/05-大专生的思考
人工智能·笔记·学习·算法·机器学习
~yY…s<#>3 小时前
【刷题17】最小栈、栈的压入弹出、逆波兰表达式
c语言·数据结构·c++·算法·leetcode
幸运超级加倍~4 小时前
软件设计师-上午题-16 算法(4-5分)
笔记·算法