c 计算机基础知识与基本操作Word格式文档下载.docx
《c 计算机基础知识与基本操作Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《c 计算机基础知识与基本操作Word格式文档下载.docx(13页珍藏版)》请在冰豆网上搜索。
102+3×
101+1×
100+1×
10–1+8×
10–2
我们把以基数为底的整数幂称为位权。
从小数点开始,整数位的位权依次是100、101、102等,而小数位的位权依次是10–1、10–2、10–3等。
上式称为按权展开式按权展开式。
按权展开式
同理,二进制数1010.1B的按权展开式为:
1010.1B=1×
23+0×
22+1×
21+0×
20+1×
2–1可见,每一位的位权都是以基数2为底的整数幂,而每一位的值都等于该位上的数码与该位位权的乘积。
可见,任意一个具有n位整数和m位小数的R进制数N的按权展开式为:
(N)R=an–1×
Rn–1+an–2×
Rn2+…+a2×
R2+a1×
R1+a0×
R0+a–1×
R–1+…+a–m×
R–m
=
i=?
mn?
1
∑a
i
×
R
其中ai为R进制的数码。
不难看出,以上几种数制的共同特点是:
?
每一种数制都有一个固定的基数R(Radix),并且按照“逢R进一”的规则进行计数。
每一种数制都有自己的位权,每一位的位
权都是以基数为底的整数幂。
2.常用数制计算机领域中常用的数制有4种:
即十进制、十进制、十进制二进制、八进制和十六进制。
关于十进制大二进制、八进制和十六进制家早已熟悉。
二进制是计算机中使用的基本数制,由于数值较大的二进制数的位数很多,给书写和阅读带来不便,所以经常用十六进制数或八进制数表示,我们可以把八进制和十六进制看成是二进制的压缩形式。
表1-2列出了常用4种数制中的数码、基数、位权及后缀。
种数制中的数码、表1-24种数制中的数码、基数、位权及后缀种数制中的数码基数、
数制十进制二进制八进制数码0,1,2,3,…,90,1210iD2iB0,1,2,3,…,788iQ十六进制0,1,2,3,…,9,A,B,C,DE,F1616iH
基数10位权后缀
二进制、表1-3二进制、八进制与十六进制位权的值
i2i543210-1-2
32
16
8
4
2
1
0.5
0.25
8i
4096
512
64
0.125
16i
65536
256
0.0625
1.2.2不同数制之间数的相互转换1.非十进制数转换成十进制数非十进制数转换成十进制数的方法是将非十进制数按权展开求和按权展开求和。
按权展开求和【例1-1】将二进制数(1011.1)2转换成十进制数。
(1011.1)2=1×
21+1×
2–1=8+0+2+1+0.5=11.5
【例1-2】将八进制数(257)8转换成十进制数。
(257)8=2×
82+5×
81+7×
80=128+40+7=175【例1-3】将十六进制数(2CF.4)16转换成十进制数。
(2CF.4)16=2×
162+12×
161+15×
160+4×
16–1=512+192+15+0.25=719.25
2.十进制数转换成非十进制数十进制数转换成非十进制数的方法是:
整数之间的转换用“除基取余法除基取余法”;
小数之间除基取余法的转换用“乘基取整法乘基取整法”。
乘基取整法
【例1-4】将十进制数26转换成二进制数。
将十进制整数26连续除以基数2,直到商等于0为止。
然后,将每次相除所得到的余数按倒序从左到右排列:
226余数213…………0低位26…………123…………021…………10…………1高位转换结果是:
26=11010B。
【例1-5】将十进制数26.125转换成二进制数。
首先将整数部分26按上述方法转换为二进制数11010B;
再将小数部分0.125连续乘以基数2,直到小数部分等于0为止。
然后,将每次相乘所得到的整数按正序从左到右排列:
0.125整数×
2二进制小数首位0…………0.250×
20…………0.500×
2二进制小数末位1…………1.000转换结果是:
26.125=11010.001B。
【例1-6】将十进制数0.43转换成二进制数。
0.43为纯小数,转换成二进制数采用“乘基取整法”。
在运用该方法的过程中,应注意每次只将小数部分乘以基数,而不能将积的整数部分乘以基数,我们可以认为整数部分已经被取走。
算式如下:
0.43×
20…………0.86×
21…………1.720.72(整数部分已取走)×
21…………1.440.44(整数部分已取走)×
20…………0.88不难看出,再继续乘下去,小数部分也不会等于0。
这时可根据计算精度的要求在适当的位数上截止。
例如,取4位小数,得到一个近似值0.0110B。
此例表明,某些十进制小数不能精确地用二进制小数来表示。
3.非十进制数之间的相互转换
表1-44种数制中数的对应关系种数制中数的对应关系十进制012345678二进制0110111001011101111000八进制0123456710十六进制012345678
表1-4续4种数制中数的对应关系续种数制中数的对应关系十进制9101112131415161718二进制1001101010111100110111101111100001000110010八进制11121314151617202122十六进制9ABCDEF101112
3.非十进制数之间的相互转换表1-4列出了4种数制中数的对应关系。
从表中可以看出,1位八进制数对应位二进制数,而1位八进制数对应3位二进制数位八进制数对应位二进制数,位十六进制数对应4位二进制数。
位十六进制数对应位二进制数。
因此,二进制数与八进制数之间、二进制数与十六进制数之间的相互转换便十分容易。
八进制数转换成二进制数的方法是:
将每一将每一位八进制数直接写成相应的3位二进制数位二进制数。
位八进制数直接写成相应的位二进制数。
反之,二制数转换成八进制数的方法是:
以小数点为界,以小数点为界,以小数点为界向左或向右将每3位二进制数分成一组,向左或向右将每位二进制数分成一组,若不足3位,则用补足位。
然后,将每一组二进制数补足3位然后,位则用0补足直接写成相应的1位八进制数位八进制数。
直接写成相应的位八进制数。
【例1-7】将八进制数(714.53)8转换成二进制数。
(714.53)8=(.)2【例1-8】将二进制数(.00101)2转换成八进制数。
(.00101)2=(011101110.001010)2=(356.12)8
十六进制数转换成二进制数的方法是:
将每一位十六进制数直接写成相应的4位二进制数。
而二进制数转换成十六进制数的方法则是以小数点为界,向左或向右将每4位二进制数分成一组,若不足4位,则用0补足4位。
然后,将每一组二进制数直接写成相应的1位十六进制数。
【例1-9】将十六进制数(1A6)16转换成二进制数。
(1A6)16=(0)2=()2【例1-10】将二进制数(.101)转换成十六进制数。
(.101)2=(10001111.1010)2=(8F.A)16
1.3数值数据在计算机中的表示及运算
数据可分为两大类:
数值数据和非数值数据。
前者表示数量的多少;
后者表示字符、汉字、图形、图像、声音等。
在计算机内,无论哪一种数据,都以二在计算机内,在计算机内无论哪一种数据,进制形式表示。
进制形式表示。
二进制具有许多优点:
可行性二进制仅使用两个数码0和1,可以用两种不同
的稳定状态(如高电位与低电位)来表示。
简易性与十进制数相比,二进制数的运算规则简单得多。
逻辑性二进制中的1和0可以分别表示逻辑值“真”和
“假”,容易实现逻辑运算。
可靠性二进制使用的数码少,传输和处理时不易出错,
因而可以保障计算机具有很高的可靠性。
1.3.1数据的单位计算机中数据的单位有3种:
位、字节和字。
位字节和字1.位(bit))计算机中最小的数据单位是二进制的一个数位,简称位,用bit表示,音译为“比特”。
一个二进制位可以表示21种状态,即0和1;
两个二进制位可表示22种状态,即00,01,10和11,n个二进制位可以表示2n种状态。
显然,位数越多,所能表示的状态就越多,即所表示数的范围就越大。
2.字节(Byte)为了表示字母、数字及各种专字节()用符号,需要用7位或8位二进制数,因此,人们规定8位为一个字节,用Byte表示,记作B。
字节是计算机中用来表示存储空间大小的最基本的容量单位。
基本的容量单位。
例如,计算机内存的存储容量、磁盘的存储容量都是以字节为单位的。
除了用字节表示存储容量外,还经常用KB、MB、GB和TB等表示存储容量。
它们之间的关系是:
1KB=210B=1024B1MB=220B=1024KB1GB=230B=1024MB1TB=240B=1024GB
3.字(word))在计算机中,通常用若干个二进制位表示一个数或一条指令,把它们作为一个整体来存储、处理和传输。
这种作为一个整体来处这种作为一个整体来处理的二进制位串称为字,表示。
理的二进制位串称为字,用word表示。
也就表示是说,字是计算机进行数据存储和数据处理的单位。
1个字由若干个字节组成。
例如,字长为16位的计算机,1个字由2个字节组成;
字长为32位的计算机,1个字由4个字节组成。
1.3.2正负数的表示在计算机内,通常把1个二进制数的最高位定义为符号位符号位,用“0”表示正数,“1”表示负符号位数;
其余位表示数值。
我们把这种正负号数字化的机内表示形式称为机器数机器数,而把机器外部机器数用正、负号表示的数称为真值真值。
例如,在机器真值中用8个二进制位表示+18,其格式为:
00010010↑符号位(表示正数表示正数)符号位(0表示正数)
又如,用8个二进制位表示–36,其格式为:
10100100↑符号位(1表示负数)
需要指出的是:
机器数所表示的数的范围受到字长和数据类型的限制。
字长和数据类型确定之后,机器数所能表示的数的范围也就确定了。
例如,如果表示一个整数,字长为8位,则最小值是()2=–127,最大值是()2=127,即用8个二进制位表示有符号整数时,它所能表示的数的范围是–127~127(原码表示法,见1.3.4节)。
如果数值超过这个范围,就会发生“溢出”。
1.3.3*定点数与浮点数计算机中的数除了整数之外,还有小数。
如何确定小数点的位置呢?
通常有两种方法:
一种是规定小数点的位置固定不变,称为定定点数。
另一种是小数点的位置不固定,可以点数浮动,称为浮点数浮点数。
在计算机中,通常用定浮点数点数来表示整数和纯小数,分别称为定点整数和定点小数。
对于既有整数部分、又有小数部分的数,一般用浮点数表示。
(3)浮点数在浮点数表示法中,小数点的位置是可以浮动的。
众所周知,十进制数123.45可以表示成以下多种形式:
0.12345×
1031.2345×
10212.345×
101123.45×
1001234.5×
10–1?
可见,改变指数的值,也就改变了小数点的位置。
对于一般的情况,十进制数N可以写成如下形式:
N=S×
10P其中S称为N的尾数,其值可正、可负;
P称为N的阶码,其值也可正、可负;
10称为底。
同理,对于二进制数N可以写成如下形式:
2P
2P在大多数计算机中,都把尾数定为二进尾数S定为二进尾数制纯小数,把阶码阶码P定为二进制定点整数。
尾制纯小数阶码数S的二进制位数决定了所表示数的精度精度(即精度有效数字位数);
阶码P的二进制位数决定了所能表示的数值范围数值范围。
数值范围例如,字长为32位的计算机,可用8位作为阶码,其中最左面1位为阶符(阶码的符号位);
用24位作为尾数,其中左面第1位为数符(尾数的符号位);
阶码的底隐含为2,不需要表示出来。
存储格式如下:
位:
31
23
10
↑阶符
↑↑阶码数符
↑尾数
为了便于存储,通常用规格化形式表示浮点数。
规格化形式规定尾数为纯小数且最高位为1。
规格化形式规定尾数为纯小数且最高位为。
例如,二进制数110.011的规格化形式为:
0.×
211。
1.3.4原码、反码和补码原码、在计算机内,定点数有3种表示法:
原码、反原码、原码码和补码。
码和补码。
所谓原码原码就是前面所介绍的二进制定点表原码示法,即最高位为符号位,“0”表示正,“1”表示负,其余位为数值位。
反码表示法规定:
正数的反码与其原码相同;
负数的反码是对其原码逐位取反(即0变为1,1变为0),但符号位不变,仍为1。
补码表示法规定:
正数的补码与其原码相同;
负数的补码是在其反码的末位加1。
原码、反码和补码的构成示例见表1-5。
为简单起见,我们以定点整数为例,并假设字长为8位。
表1-5原码、反码和补码的构成示例原码、
十进制数+18–18原码反码补码
【例1-11】请写出–1和96的补码。
要写出十进制数–1和96的补码,首先需要写出它们的原码。
–1的原码是;
96的原码是。
因为正数的补码同原码,所以96的补码是。
要写出–1的补码,首先将其原码逐位取反(符号位除外)得到其反码,然后在该反码的末位加1便得到–1补码。
1.3.5二进制数的算术运算在微型计算机中普遍采用补码运算。
在微型计算机中普遍采用补码运算。
【例1-12】已知A=15,B=–23,求Y=A+B的值。
A的补码为,B的补码为,二者相加:
+和仍为补码,最高位为1,表示负数。
请注和仍为补码意,负数的补码并不表示其真值,对该结果再对该结果再求一次补码才是其真值。
的补码为求一次补码才是其真值,即Y=–8。
采用补码运算还可以将减法运算转换成加法运算,并且符号位与数值位一样地参与运算,十分方便。
【例1-13】已知A=65,B=32,求Y=A–B的值。
解:
将减法运算转换成加法运算:
Y=A–B=A+(–B)=65+(–32)A的补码为,–B的补码为,将二者相加:
+↑此位自然丢失和的最高位为0,表示正数,即Y=()2=33。
【例1-14】已知A=126,B=3,求Y=A+B的值。
A的补码为,B的补码为,二者相加:
+两个正数的和为一个负数,结果错误。
因为无论用哪一种方法表示定点数都是有一定范围的,如果超出此范围,则会发生“溢出”。
“溢出”8位定点整数补码的表示范围是–128~+127。
本题运算结果应该是+129,已超出此范围。
解决这类问题的方法是用16位或32位补码运算。
小结:
对整数而言,正数的原码、反码和补码的形式完全相同,而负数的原码、反码和补码具有不同的形式;
运算结果如果是负数的补码,则再对其求一次补码才是该负数的真值。
1.3.6*二进制数的逻辑运算(略)*
习题一1.写出以下十进制数对应的二进制数、八进制数、十六进制数:
3564128255655312.写出以下十进制数用字节表示的原码、反码、补码。
要求:
用一个字节(8位二进制表示)和用两个字节(16位二进制数表示)两种表16示方式。
-563-127121-13.用补码形式计算:
已知A=10,B=5,求C=A+B和C=A-B。
已知A=23,B=-56,求C=A+B和C=A-B。
例题及习题
1.4非数值数据在计算机中的表示
字符是计算机处理的主要对象。
字符编码就是规定用怎样的二进制码来表示字母、数字及各种符号,以便使计算机能够识别、存储和处理它们。
在微型机中使用最广泛的字符编码是美国信息交换标准代码ASCII(American美国信息交换标准代码StandardCodeforInformationInterchange)。
ASCII码已被国际标准化组织(ISO)接受为国际标准,在世界范围内通用。
ASCII码有7位和8位两种版本。
目前,国际上通用的是7位版本,如表1-6所示。
由表1-6我们可以看出字符排列的规律:
阿拉伯数字、英文大写字母和小写字母按其ASCII码由小到大依次排列。
小写字母的ASCII码比相应大写字母的ASCII码大32。
例如,已知大写字母‘A’的ASCII码为65,则小写字母‘a’的ASCII码为65+32=97。
我们只要记住“0的ASCII码为48,A的ASCII码为65”,就可以求出任意阿拉伯数字或英文字母的ASCII码。
例如,在ASCII码表中,阿拉伯数字6排在0后面第6个位置,所以它的ASCII码为48+6=54;
字母G是26个英文字母中的第7个,其ASCII码为65+7–1=71;
字母d是26个英文字母中的第4个,其ASCII码为65+4–1+32=100。
8位ASCII码称为扩展ASCII码,可以表示256个不同的字符。
1.4.2*汉字的编码(略)
1.5微型计算机系统
1.5.1微型计算机系统的基本组成1.冯·
诺依曼计算机系统的组成(了解)诺依曼计算机系统的组成(诺依曼计算机系统的组成了解)一个完整的计算机系统是由硬件系统软硬件系统和软硬件系统件系统两大部分组成的。
硬件是指计算机的各种件系统看得见、摸得着的物质实体,是计算机系统的物质基础。
软件是指程序、数据和文档,是计算机系统的灵魂。
没有软件的“裸机”不能作任何工作;
没有硬件的支持,软件的功能也不能得以发挥。
所以,硬件和软件相互结合才能充分发挥计算机系统的功能。
冯·
诺依曼(见1.1)计算机各部分之间的关系如图1-3所示。
图中实线为数据流,虚线为控制流。
运算器
输入设备
内存储器
输出设备
控制器
图1-3冯·
诺依曼计算机各部分之间的关系诺依曼计算机各部分之间的关系
(1)输入设备输入设备用来接收用户输入的原始数据和程序,并将它们变成计算机能够识别的形式存放到内存中。
常用的输入设备有键盘、鼠标、扫描仪、光笔、条形码读入器、触摸屏、数码相机等。
(2)存储器存储器通常分为内存储器(简称内存储器(内存储器内存)和外存储器(简称外存)内存)和外存储器(简称外存)两种。
内存存储容量较小、价格较高,但存取速度快。
在计算机运行过程中,需要执行的程序及其所需要的数据存放在内存。
整个内存被分成若干个存储单元,像教学楼中每个教室有惟一的房间号一样,每个存储单元也有惟一的编号,以便于对各存储单元进行存取操作,这些编号称为存储单元的地址。
相对内存而言,外存容量大、价格便宜,但存取速度较慢,用于存放暂时不用的数据和程序。
常用作外存的有磁盘、光盘、U盘等。
(3)运算器运算器又称算术逻辑单元ALU(ArithmeticandLogicUnit),主要完成算术运算和逻辑运算。
(4)控制器控制器的主要作用是使计算机能够自动地执行程序,并控制其各部件协调工作。
(5)输出设备输出设备可以将计算机处理的结果转变为人们所能接受的形式输出。
常用的输出设备有:
显示器、打印机、绘图仪等。
2.微型计算机系统的基本组成微型计算机也属于冯·
诺依曼计算机,其基本组成如图1-4所示。
1.5.2微型计算机的硬件系统
微型计算机的硬件系统硬件系统同样是由运算器、控制器、运算器、硬件系统运算器控制器、存储器、输入设备和输出设备五大部分组成。
在微存储器、输入设备和输出设备五大部分型机中运算器和控制器不是两个独立的部件,而是做在一块芯片上,称为CPU(CentralProcessingUnit),中文名称为中央处理器或微处理器中央处理器或微处理器。
微型中央处理器或微处理器机采用总线结构总线结构实现CPU、存储器和外部设备的连总线结构接。
为了适应联网的需要,出现了许多网络设备。
因此,我们可以说微型机硬件系统是由微处理器、微型机硬件系统是由微处理器、微型机硬件系统是由微处理器存储器、输入输出接口电路、输入输出设备、系统存储器、输入输出接口