光学与电子信息学院计算机基础知识光学与电子信息学院计算机基础知识•1.1计算机原理概述•1.2二进制数在计算机中的应用•1.3程序设计常用进制数光学与电子信息学院1.1计算机原理概述计算机系统硬件系统软件系统CPU存储器IO口系统软件应用软件计算机、单片机:系统包含CPU、存储器和输入/输出接口等电路模块。如果集成在单片的芯片上,就是单片机。光学与电子信息学院•1.1.1计算机硬件系统1.1计算机原理概述电子计算机的问世,最重要的奠基人是英国科学家艾兰·图灵(AlanTuring)和美籍匈牙利科学家冯·诺依曼(JohnVon·Neuman)。图灵的贡献是建立了图灵机的理论模型,奠定了人工智能的基础。冯·诺依曼则是首先提出了计算机体系结构的设想。光学与电子信息学院•1、冯·诺依曼体系1946年美籍匈牙利科学家冯·诺依曼提出存储程序原理,把程序本身当作数据来对待,程序和该程序处理的数据用同样的方式存储,并确定了存储程序计算机的五大组成部分和基本工作方法。1.1计算机原理概述光学与电子信息学院CPU存储器Input输入接口Output输出接口地址总线AB数据总线DB控制总线CB运算器控制器1.1计算机原理概述光学与电子信息学院•CPU(包含运算器和控制器)执行程序,实现对数据信息进行处理和对整个系统进行控制。•存储器•包括随机存取存储器(RAM)和只读存储器(ROM),用来存放数据和程序。•输入/输出(I/O)接口电路•实现微处理器与外部设备的连接,沟通微型机与外界之间的信息联系。1.1计算机原理概述光学与电子信息学院•2、计算机系统信息传送通道总线:用来传送信息的一组导线,为CPU和其它部件之间提供数据、地址和控制信息的传输通道。–地址总线:专门用来传送地址信息。–数据总线:用于传送数据信息。–控制总线:用来传送控制信号。1.1计算机原理概述光学与电子信息学院•1.1.2计算机软件系统•系统软件•系统软件是指控制和协调计算机及外部设备,支持应用软件开发和运行的系统,是无需用户干预的各种程序的集合。•应用软件•用户可以使用的各种程序设计语言,以及用各种程序设计语言编制的应用程序的集合,分为应用软件包和用户程序1.1计算机原理概述光学与电子信息学院•1.1.3计算机的工作过程•在进入运行前,要将事先编好的程序装入存储器中。–程序:为了完成某项工作而由指令进行的有序组合。–指令:计算机执行某种操作的命令。通常由操作码和操作数两部分组成,操作码代表要执行的操作,而操作数表示参加操作的数或者操作数所在的地址。1.1计算机原理概述光学与电子信息学院•指令在存储器中是顺序存放的,而指令的执行过程一般分为两个阶段:–1.读取指令在CPU的控制下,由内部程序指示器形成指令存储地址并从该地址中读取指令后送到指令寄存器中保存;–2.执行指令在CPU的控制下,由指令译码器对指令译码,产生各种定时和控制信号,并执行该指令所规定的操作。1.1计算机原理概述光学与电子信息学院1.2二进制数在计算机中的应用•1.2.1二进制数1、进位计数制/数制按进位方式实现计数的一种规则,简称为进位制或数制。数制有两个基本要素:基数:表示某种进位制所具有的数字符的个数以及进位的规则位权(简称权):表示一个进位计数制的数中不同数位上数字的单位数值,第i位的权即为基数的i次幂光学与电子信息学院•1十进制–十进制数的基数为10,由0-9十个数字符,逢十进一。–十进制的表示方式:–其中m表示小数位的位数,n表示正数的位数,K为0-9。2110101210111()10101010101010nnnnmmniiimNKkKKKKK1.2二进制数在计算机中的应用光学与电子信息学院•2.二进制–基数为2的数制为二进制,有0、1两个数字符,逢二进一。–任何一个二进制数N可以表示为:–其中m、n的含义与上述相同,K为0-1。211021210111()2222222nnnnmmniiimNKkKKKKK1.2二进制数在计算机中的应用光学与电子信息学院•3.十六进制–基数为16的数制为十六进制,有0-9、A、B、C、D、E、F十六个数字符(其中A-F分别表示10一15),遭十六进一。–一个十六进制数N可以表示为:–二进制数的位数多,书写和阅读很不方便,容易出错。微机中通常采用十六进制数作为二进制数的缩写形式,书写简单.一目了然。2110161210111()16161616161616nnnnmmniiimNKkKKKKK1.2二进制数在计算机中的应用光学与电子信息学院•4.其他进制–12进制与钟算术–24进制与标准时间表示法–天文历法中的进制1.2二进制数在计算机中的应用光学与电子信息学院•1.2.2计算机中二进制数的存储单位1、位(Bit)位是计算机所能表示的最小数据单位,即1位二进制数1或者0。2、字节(Byte)8位二进制数称为一个字节。最基本的数据单位。1.2二进制数在计算机中的应用光学与电子信息学院3、字(Word)16位二进制数称为一个字。1个字有2个字节。视CPU不同,字在内存中有两种不同的存放方式:顺序存放,即字的高8位(高字节)存放在低地址单元,低8位(低字节)存放在高地址单元(高位在前,低位在后)逆序存放,即字的低字节存放在低地址单元,高字节存放在高地址单元。(低位在前,高位在后)字用于衡量计算机一次性处理数据的能力。1.2二进制数在计算机中的应用光学与电子信息学院1.2二进制数在计算机中的应用1、机器数和真值在计算机中,将“+”、“-”符号数字化,用“0”表示“+”号,用“1”表示“-”号。这样的数称为机器数,而把机器数所代表的数的实际值称为机器数的真值。例如,真值x1=+1001001x2=-1001001机器数x1=01001001x2=110010011.2.3机器数的表示形式光学与电子信息学院2、无符号数与有符号数的机器数表示无符号数只表示数值大小,常用于表示无正负概念的数、代码和存储器的地址有符号数具有正负的概念,用“0”表示或者“1”放到表示数值大小的数码序列最前面来表示正负数。1.2二进制数在计算机中的应用光学与电子信息学院1.2.4机器数的原码、反码与补码计算机中带符号数有三种表示方法:原码、反码和补码。在这三种机器数的表示形式中,符号位的规定相同,仅是数值部分的表示形式不同。1、原码正数的符号位用“0”表示,负数的符号位用“1”表示,其余数字位表示数值本身。•例如,x1=+1101101[x1]原=01101101x2=-1101101[x2]原=111011011.2二进制数在计算机中的应用光学与电子信息学院–对于数0,可以认为它是+0,也可以认为它是-0。因此,0在原码表示中有下列两种形式:[+0]原=00000000[-0]原=10000000–由此可见,数0的原码表示不是唯一的。对于8位二进制数(称为一个字节)来说,原码可表示的数的范围是-127~+127。1.2二进制数在计算机中的应用光学与电子信息学院2、反码–正数的反码和正数的原码相同。–负数的反码其符号位为1,其余各位逐位取反,即0变为1,1变为0。–例如,x1=+1101101[x1]原=01101101[x1]反=01101101x2=-1101101[x2]原=11101101[x2]反=100100101.2二进制数在计算机中的应用光学与电子信息学院–当x=±0时,[x]反也有两种表示形式即:[+0000000]反=00000000[-0000000]反=11111111–所以,在反码表示中.“0”的表示也不是唯一的。8位二进制数反码所能表示的数的范围是-127~+127。1.2二进制数在计算机中的应用光学与电子信息学院3、补码在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。•正数的补码与正数的原码相同,–负数的补码等于负数的反码加1。(即符号位不变,数值位取反,后整体在+1)–如何求补码的原码:即再对补码求一次补码就还原成原码。–例如:x1=+1101101[x1]原=01101101[x1]反=01101101[x1]补=01101101x2=-1101101[x2]原=11101101[x2]反=10010010[x2]补=100100111.2二进制数在计算机中的应用光学与电子信息学院–采用补码表示,可以把减法运算变成加法运算。但要注意,在求和的计算中,需要将运算结果产生的进位丢掉,才能得到正确的结果,其结果亦为补码表示。–例如,21-15=21+[-15]补–当数用补码表示时,无论是加法还是减法运算都可采用加法运算,而且数0的表示是唯一的。因此,在微机中普遍用补码来表示带符号的数。–8位二进制数补码所能表示的数的范围是-128~+127。1.2二进制数在计算机中的应用光学与电子信息学院1、正数有原码=反码=补码2、负数的原码、反码、补码各不相同,但符号位一定为1.1.2二进制数在计算机中的应用光学与电子信息学院1.2二进制数在计算机中的应用光学与电子信息学院求-100的补码+100=64H=01100100B-100=11100100B10011011B10011100B补码的概念:X和y的和得到一个最小进位,则称x和y互为补数。该最小进位值称为“模”。1.2二进制数在计算机中的应用光学与电子信息学院十进制中:9+1=10(对一位十进制数而言,1和9互补)9-1=9+(1)补=9+9=18,丢弃模10之后得到8十六进制中:[+100]补=64H[-100]补=9CH[+100]补+[-100]补=64H+9CH=100H1.2二进制数在计算机中的应用光学与电子信息学院如何求某一数的补码方法1:[-100]补=100H-[+100]补=100H-64H=9CH补码2:[-100]补=256-100=156D=9CH1.2二进制数在计算机中的应用光学与电子信息学院1.2二进制数在计算机中的应用光学与电子信息学院1.2二进制数在计算机中的应用光学与电子信息学院1.2二进制数在计算机中的应用光学与电子信息学院•1.2.5二进制数的运算•1、二进制算术运算•加、减、乘、除•2、二进制逻辑运算•与、或、非、异或1.2二进制数在计算机中的应用光学与电子信息学院特别注意:•上述二进制的原补码运算都是基于单字节的8位数运算。•如果C语言中2或4个字节的数一起运算时,怎么办?inta=-5;charb=-5;它们的原补码怎样表示?intc=a+b;(涉及到数据类型转化,字节位数要按最高字节数量补齐)[a]原=[1000000000000101][b]原=[10000101]不对![b]原=[1000000000000101]正确光学与电子信息学院1.3.1十六进制数与十进制数为了区别不同的数制,通常在数字后面加一个后缀(B或H);–B(binary)表示二进制;–H(Hexadecimal)表示十六进制;•例如,10101010B为二进制数,8FH为十六进制数。1.3程序设计常用进制数光学与电子信息学院1.3程序设计常用进制数•1.3.2数制转换*–不同数制只是描述数的不同方式。同一个数可以用不同的进位制来表示,它们可以相互转换。应该保证转换前、后所表示的数值是相等的,或者在满足规定的误差范围内近似相等。十进制二进制十六进制012345678910111213141500000001001000110100010101100111100010011010101111001101111011110123456789ABCDEF十进制、二进制、十六进制对照表光学与电子信息学院•1.十进制转换为二进制–a.十进制整数转化为二进制整数–转换方法:除基取余。–即不断地用2去除待转换的十进制数,将每次所得的余数(0或1)依次记为K0、