计算机基础知识 进位计数制
- 格式:docx
- 大小:1.90 MB
- 文档页数:4
一、数据与信息数据(Data)和信息(Information)是两个不同的概念,数据是信息的具体表现形式,是各种各样的物理符号及其组合,反映信息的内容。
信息(Information)是对数据进行加工处理后得到的有用的数据。
计算机中的数据、信息都是用二进制形式编码表示的,而日常生活中人们习惯用十进制数来表示数据。
为有效认识计算机中信息的表示,首先理解二进制、八进制、十进制、十六进制数之间的相互转换。
二、数制及其转换1.所谓数制(也称进位计数制)是指用一组固定的数字符号、按照一定的运算规则、由低位到高位进位来表示数的一种计数方法。
通常,将其所使用的符号个数称为该数制的“基数”,基数的方幂称为“位权”(简称“权”),表示数制中每一固定位置对应的单位值。
对任何N进制,都有一套统一的运算规则,即采用“逢N进一”的原则进行运算。
如一个十进制数据1234.5,其基数为10,数字5所在位的权值为10-1(即0.1),数字4所在的权值为100(即1),数字3所在位的权值为101(即10),以此类推。
在计算机系统中,除人们日常使用的十进制外,还有二进制、八进制、十六进制。
常用进制数的表示如表1.2.1所示。
表1.2.1 常用进制数的表示计算机中常用的二、八、十、十六进位制数的对应关系如表1.2所示。
表1.2.2 常用进位制数的对应关系为区分不同数制表示的数,在书写时可以有2种方法表示,以十进制数5表示为例。
第一种采用字母B(Binary)表示二进制(101B)、字母O(Octal)或Q表示八进制(5O或者5Q)、D(Decimal)表示十进制(5D)、字母H (Hexadecimal)表示十六进制(5H);第二种表示方法就是将数值加括号,括号后面是该数值的进位制值,如十进制5表示为(5)10。
2.不同数制之间的转换①十进制数转换成二、八、十六进制数将十进制数转换为二、八、十六进制数时,可将此数分成整数部分与小数部分分别进行转换,然后再连接起来即可。
3.1.1 常用的进位计数制
人们习惯的是用十进制表示数,但在计算机内,各种信息都是用二进制代码形式表示的,用户书写时又大都使用十六进制,有时也用八进制。
如表3.1所示。
任意一个R进制的数,都有以下三个要点:
(1) 基数为R,即使用R个数码。
例如,十进制有0~9十个数码,R=10;而二进制只有0和1两个数码,R=2。
(2) 进位规则为逢R进一。
例如,十进制逢十进一,二进制逢二进一。
(3) 第i个数位上的数码所具有的位权为R i。
由于不同位置上的权值不同,因此同一数码在不同位置上,其表示的值也不同。
每个数位上的值等于该位置上的数码与权值的乘积。
而数值可用下面的通式表示:
N = a n-1R n-1+ a n-2R n-2 +∧+a1R1 +a0R0+∧+a--m R—m
式中,R代表基数,a i表示第i位数位上的数码,0 ≤a i< R,R i 表示数位的权,m和n为正整数。
十进制、二进制、八进制、十六进制数后面分别加字母D、B、Q、H予以区别。
几个重要概念重点概念1:计算机中的数据都是以二进制形式进行存储和运算的重点概念2:在计算机中存储数据时,每类数据占据固定长度的二进制数位,而不管其实际长度。
一般长度为字节的整倍数例如:在八位微机中,整数216 存储为11011000B整数56 存储为00111000B复习1)十进制特点:每一位数有02)二进制特点:3)十六进制特点:1(即乘10101000376542复习真值与机器数例:真值与机器数+77机机例:真值与机器数-77机机2数的定点与浮点表示计算机中如何表示实数中的小数点呢?计算机中不用专门的器件表示小数点,而是用数的两种不同的表示法来表示小数点的位置。
根据小数点的位置是否固定,数的表示方法分为定点表示和浮点表示,相应的机器数称为定点数和浮点数。
任意一个二进制数N均可表示为:N=S·2J其中:最后面或最前面,即分为定点纯小数与定点纯整数两类,如图1-6所示。
01000000定点小数:定取不同的数值,则在计算机中除了要表示尾码示阶码J。
因此,一个浮点数表示为阶码和尾数两部分,尾数一般是定点纯小数,阶码是定点纯整数,其形式如图点N = 2p S点例:X= +10110.01= 2 +101×(+ 0.1011001)26点= 2无符号数带符号数数有正、负→带符号数把符号位和数值位一起编码:原码,反码,补码。
顺时针调:7+9 =4 (mod 12)逆时针调:7-3 =4 (mod 12)由于时钟上超过12点时就会自动丢失一个数与原码相同,只要将符号位的得到它的真值。
对一个二进制数按位取反,最低位加1。
(计算机 已知负数的补码求真值在计算机中,用补码表示方法:按位取反,最低位加12 105 2 52 12 26 0[ 105D ] 补8位= 0 –0110 1001B = 0 –69H -D 2000:0 如,用DEBUG 查看到存放在内存中的一组符号数:由最高位判断:0 →正数7DH的真值= 7 ×16 + 13 = 125 D凡是能在计算机内存储或参与运算的都是二进制形式的机器数,计算机只能出别“0”和“1”,对于某个二进别致的最高位究竟应看做为符号位还是数值位,理论上是无法自动识别但是,由于引入了补码概念,使得计算机在进行无符号数和有符号数的运算时能够实现操作的一致性,且结果合理。
1.2.3进位计数制与数据处理计算机机器不具备逻辑思维能力,无法读懂人类语言,只能识别由0、 1组成的二进制代码,这与人类在实际工作和生活中使用的十进制完全不同。
为了更好地理解计算机语言与计算机处理信息的方式,必须理解进位计数制、二进制与十进制数等概念。
1、数值数据在计算机中的表示方法计算机只能识别二进制数,因此所有输入计算机的数据(或信息)都要在计算机内部转换成二进制进行处理,处理完毕以后又要从二进制形式转换成人类能容易识别的信息,如文字、图片、声音等,那么什么是二进制呢?这就要先了解进位计数制。
(1)进位计数制日常生活中经常遇到各种进位计数制,例如一打等于12个(12进制),一小时等于60分(60进制)等,其中最常用的是十进制。
所谓进位计数制是指按进位的原则进行计数的方法,简称进制。
十进制:十进制有10个数(0、1、2、3、4、5、6、7、8 9)组成,采用10为基数,逢十进一。
每个位上是权数10的次幕,例如105可以拆分成:105=1 X 102+0X 101+5X 100。
因此,我们从十进制中抽象出 X进制数的表示形式。
N=d n …di …d1=d n XX n-1…di X X i-1…d1 XX0X进制数中,基数为x,进位规律逢X进一,权数为X。
二进制:采用2为基数,逢二进一的计数制,二进制只包含两个数(0 和 1),例如 10101=1X 24+0X 23+1 X 22+0X 21+1X 2°。
八进制:采用8为基数,逢八进一的计数制,八进制包含八个数(0、1、2、3、4、5、6、7)。
例如 4 5=4 X 81+5 X 8°不同进位计数制需要一些书写规范来区分,下面介绍几种常见写法。
1、二进制:B放在数字后面表示例如1010B2、八进制:O放在数字后面表示例如4503、十进制:D放在数字后面表示例如12334D或在数字后面写下标(2)、(8)、(16)表示数制,例如47(8)、153(1。
(1)进位计数制我们习惯使用的是十进制,另外还有八进制、十二进制、十六进制、六十进制等等。
而计算机使用的是二进制,由于二进制中只有两个数字0和1,所以很容易用电子元件的两种状态来表示(如电平的高或低,晶体管的导通或截止),所以二进制具有硬件上容易实现、运算规则简单、便于机器执行等优点。
但同时也存在着位数长、书写和阅读都不方便且容易出错等缺点。
有时八进制和十六进制能方便地与二进制实现转换,所以常用八进制十六进制进行输入或输出。
进位计数制①进位计数制的基本特点:逢N进一。
N是指进位计数制表示一位数所需要的符号数目。
②采用位权表示法:处于不同位置上的数字代表的数字代表不同的数值。
位权和基数是进位计数制中的两个要素。
进位计数制的基本的表示方法几种数制的表示法:二进制。
由数字0,1组成,基数为2,逢二进一。
(1011.101)2=1×23+0×22+1×21+1×20+1×2-1+0×2-2+1×2-3八进制。
由数字0~7组成,基数为8,逢八进一。
一个八进制数可按权展开成一个多项式,列如:(274)8=2×82+7×81+4×80十六进制。
由数字0~9和英文字母A至F组成,用A表示10,B表示11……用F表示15,逢十六进一。
一个十六进制数可按权展开成一个多项式,列如:(2EA6)16=2×163+14×162+10×161+6×160表1.2给出了这几种数制间0-16数值的对照表。
表1.2为了表达方便起见,常在数字后加一缩写字母作为不同进制数的标识。
B -→二进制Q -→八进制D -→十进制(可省略)H -→十六进制(2)不同进位计数制之间的转换①十进制与二进制之间的转换一个十进制数一般可分为整数部和小数两个部分。
通常把整数部分和小数部分分别进行转换,然后再组合起来。
进位计数制:是人们利用符号来计数的方法。
一种进位计数制包含一组数码符号和两个基本因素。
(1)数码:用不同的数字符号来表示一种数制的数值,这些数字符号称为"数码"。
(2)基:数制所使用的数码个数称为"基"。
(3)权:某数制每一位所具有的值称为"权"。
1、常用进位计数制(1)十进制(D)数码:0、1、…… 8、9基数:10位权:10i (i=……-2,-1,0,1,2,……)逢10进1(2)二进制 (B)数码:0、1基数:2位权:2i (i=……-2,-1,0,1,2,……)逢2 进1(3)八进制 (O)数码:0、1、…… 6、7基数:8位权:8i (i=……-2,-1,0,1,2,……)逢8进1(4)十六进制 (H)数码:0、1、…… 8、9、A、B、C、D、E、F基数:16位权:16i (i=……-2,-1,0,1,2,……)逢16进1--------上面是他们的基本构成,下面是他们间的转换关系---------1 为什么需要八进制和十六进制?编程中,我们常用的还是10进制……必竟VB是高级语言。
比如:a = 99;不过,由于数据在计算机中的表示,最终以二进制的形式存在,所以有时候使用二进制,可以更直观地解决问题。
但,二进制数太长了。
比如int 类型占用4个字节,32位。
比如100,用int类型的二进制数表达将是:0000 0000 0000 0000 0110 0100面对这么长的数进行思考或操作,没有人会喜欢。
因此,C,C++ 没有提供在代码直接写二进制数的方法。
用16进制或8进制可以解决这个问题。
因为,进制越大,数的表达长度也就越短。
不过,为什么偏偏是16或8进制,而不其它的,诸如9或20进制呢?2、8、16,分别是2的1次方,3次方,4次方。
这一点使得三种进制之间可以非常直接地互相转换。
8进制或16进制缩短了二进制数,但保持了二进制数的表达特点。
如:
(3
)二进制数和八进制数的相互转换
3位二进制数000~111所代表的数据恰好可以一一对应地表示1位八进制数0~7,因此两者之间的转换是: ①二进制数据转换成八进制数
以小数为准,整数部分从右向左,每3位一组,最高有效位不足3位的补0凑足3位;小数部分从左向右,每3位一组,低们不足3位的补0凑足3位。
然后写出每3位二进制数对应的1位八进制数值,这样形成的序列即为转换后的结果。
如:
②八进制数转换成二进制数
按八进制序列,每位八进制码拆分为3位二进制码形成的序列,即为其对应的二进制数据。
如:
(4)二进制数与十六制数的转换
二进制数与十六进制数之间的转换与二进制哦ivtm 八进制数之间的转换类似,每4位二进制数表示1位址六进制数,从0000~1111表示从0~F 。
①二进制数据转换成十六进制数
以小数点为准,整数部分从右向左每4位一组,最高有交位不足4位的补0凑足4位;小数部分从左向右,每4位一组,低位不足补0凑足4位。
然后写出每4位二进制对应的一位十六进制值,形成的序列即为转换后的结果。
②十六进制数转换成二进制数 按十六进制序列,每位十六进制码拆分为4位二进制码形成的序列,即为其对应的二进制数据。
记
学生思考、讨论,。