版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、计算机中的数制
在计算机内一切信息必须进行数字化编码(即用二进制代码形式),才能在机内传送、存储和处理。输入电路10110101计算机主机10100010输出电路二进制:只有0和1,记数按“逢二进一”规律,第k位权是2k。二进制十进制
bnbn-1bn-2
……b0=
dndn-1dn-2…...d0=
ΣbkX2kk=0nΣdkX10kk=0n1011=1X23+0X22+1X21+1X20325=3X102+2X101+5X100=1X8+0X4+1X2+1X1=3X100+2X10+5X11.4计算机运算基础1二进制二进制数是计算机中常用的一种记数方法,它使用“0”,“1”这两个数码构成以2为基数的进制表达方式。其基本运算规则为“逢二进一,借一当二”。
二进制:b7b6b5b4b3b2b1b0
权值:12864321684212726252423222120二进制小数:小数点后第k位权值位2-k=1/2k。二进制:0.B-1b-2b-3b-4
权值:
0.50.250.1250.06252-12-22-32-41/21/41/81/1621101.1001(二进制)=1X8+1X4+0X2+1X1+1X0.5+0X0.25+0X0.125+1X0.0625=13.5625(十进制)
10101010+1010101010101010010101010-01010101
010101013八进制使用二进制表达一个数值需要较长的编码。为了便于记忆和使用,人们将三位二进制数作一组用一个符号表示,构成八了进制,这样可以把数码的长度缩短三分之二。把二进制数按三个一组的方式进行分组,每一组将产生23种组合,因此需要8个数码来表示每一位数值,这样就构成了八进制。八进制使用0,1,2,3,4,5,6,7,共八种符号来表示数码。二进制数和八进制数之间的关系如下:二进制
000
001
010
011
100
101
110
111八进制
0
1
2
345674二八进制数转换二进制数转换为对应的八进制数十分方便,具体分为两步:
1)以小数点为中心将二进制数三位一组进行分组;
2)将每一组用对应的八进制符号进行代换,这样就将二进制数转换成了对应的八进制数。八进制转换为对应的二进制数,只需要将每一个八进制数码直接用对应的三位二进制数代换即可。例:设有两个二进制数011110101000,0.10101011,试将它们转换成对应的八进制数。
011,110,101,0000.101,010,110八进制数3650
0.5265十六进制在计算机中常以字节为基本单位来表达和记录信息,一个字节由八位二进制数组成。八位二进制数转换成八进制数并不方便,而且一个字节需要使用三个八进制符号表示。如果将八位二进制数分为两组,每组四位,就可以两个符号表示一个字节的数据,十分便于记忆和表达。由于四位二进制数可以产生24种组合,因此需要16种数码来表示一个四位二进制数,这样就产生了十六进制。在十六进制中使用的数码分别为:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F。二进制与十六进制之间的对应关系如下:二进制
00000001001000110100010101100111十六进制
01234567二进制
10001001101010111100110111101111十六进制
89 A
BCDEF6二进制数与十六进制数转换二进制数转换为对应的十六进制数也分为两步:
1)以小数点为中心将二进制数四位一组进行分组;
2)将每一组用对应的十六进制符号进行代换,这样就将二进制数转换成了对应的十六进制数。十六进制转换为对应的二进制数,只需要将每一个十六进制数码直接用对应的四位二进制数代换即可。例:设有两个二进制数11110101000,0.101010111
,试将它们转换成对应的十六进制数。
0111,1010,10000.1010,1011
十六进制数7A8
0.AB
7二进制数与十进制数转换十进制数是人们最常使用的一种数的表达和运算方式,每一个十进制数由0,1,2,3,4,5,6,7,8,9十种符号组成。十进制数与二进制数之间无法直接进行代换,需要使用一定的计算方法。可以从它们的数学表达中来描述这种转换关系,假设有十进制整数X,若其对应的二进制数可表示为an-1an-2…a1a0,则有如下等式成立:
X=an-12n-1+an-22n-2+…+a121+a020
该等式两边同时除以2,得
X/2=an-12n-2+an-22n-3+…+a120
………
余数为a0再同时除以2,得
(X/2)/2=an-12n-3+an-22n-4+…+a220....……
余数为a18反复除以2 ......最后得X/2n=0………
余数为an-1
将所得余数从下往上依次排列就是十进制数X对应的二进制数an-1an-2…a1a0,这种方式称为“除留余数法”或“除2法”。例:将十进制数123,用除2法转换成对应的二进制数。1111011B即为123D对应的二进制数9设如果有十进制纯小数0.Y,其对应的二进制数为0.a-1a-2…a-m则有等式:0.Y=a-12-1+a-22-2+…+a-m2-m
如果将等式两边乘以2,则有
(0.Y)×2=(a-12-1+a-22-2+…+a-m2-m)×2=a
-1+a-22-1+…+a-m2-m+1
取等式两边的整数部分,则有(0.Y)×2取整=a-1将两边小数部分再乘以2
(0.Y×2-a-1)×2=(a-22-1+…+a-m2-m+1)×2=a-2+a-32-1…+a-m2-m+2取等式两边的整数部分,则有(0.Y×2-a-1)×2取整=a-2依此类推则可得到二进制数的各位数值。然后排列成0.a-1a-2…a-m即可,这种方法称为“乘2取整法”或“乘2法”。10例:将十进制数0.625,采用乘2法转换成对应的二进制数。注意:有些数可能永远也无法通过乘2的方式变成整数,一直会有小数部分,当所需要的精度达到后就不用再进行乘法操作了。如:0.725,0.225……11从以上的计算过程可以看出,十进制数转换成对应的二进制数需要分为两步进行:
1)将十进制数的整数部分采用除2法转换成对应的二进制整数;
2)将十进制数的小数部分采用乘2法转换成对应的二进制小数。最后将转换的整数部分和小数部分合并即可得到十进制数转换成的二进制数。12不同进制数据,相同的表示会有不同的数值大小,为了在表示数据时不产生歧义,通常在数据最后加一个字母来区别不同的进制。十进制数使用D表示(可以省略),二进制数使用B表示,八进制数使用Q表示,十六进制使用H表示。其对照关系如右表所示。十进制二进制八进制十六进制00000B0Q0H10001B1Q1H20010B2Q2H30011B3Q3H40100B4Q4H50101B5Q5H60110B6Q6H70111B7Q7H81000B10Q8H91001B11Q9H13二、计算机中数的表示和运算在计算机中无论是数据还是其它信息都是采用一定长度的二进制数表达。对于不同的信息,所需要的二进制数长度也不同。人们规定:在微型计算机中以八位二进制数为一个基本单位来分配存储地址,称为字节(Byte)。任何一个信息最少要用一个八位二进制数来表达,如果需要更长的二进制数表达某些信息则需要使用八的整数倍二进制数,如16位,32位等。X86系统中常用的数据长度单位有:
字节:8个二进制位(Byte)1Byte=8bit
字:2个字节(Word)1Word=2Byte=16bit
双字:4个字节(DoubleWords),1DoubleWords=4Byte=32bit
四字:4个字(QuadWords),1QuadWords=4W=8Byte=64bit
十字节:10字节(TenBytes),1TenBytes=10Byte=80bit14计算机中多字节数据的存储在计算机中每一个字节存储空间分配一个地址,多字节数据需要多个存储地址。用哪一个地址来表示多个字节组成的数据呢?计算机中多字节数据有两种数据存储方式,一种称为大端存储法,另一种称为小端存储法。所谓大端存储就是将多个字节数据依次存放,将高字节数据存放到低地址,将低字节数据存放到高地址。所谓小端存储就是将多个字节数据依次存放,高字节数据存放到高地址,低字节数据存放到低地址。如32位数据12345678H存放到起始地址为100H的存储器中。两种不同的存储方式下数据在内存中的示意如图:15地址数据地址数据100H12H100H78H101H34H101H56H102H56H102H34H103H78H103H12H104H……104H……(a)大端存储
(b)小端存储
X86系列CPU采用小端存储16BCD码如果使用二进制数对十进制的数码进行编码,并利用编码的位置关系来表达十进制数的位权关系,则可以更方便地在计算机中对十进制数进行表示和运算。常用的编码称为二~十进制码或称BCD码(BinaryCodedDecimal)。如:十进制数100如果直接进行数值转换,用二进制数表示就应该是0110,0100B(64H),需要进行7次除2取余计算得到。而使用BCD编码,就可以直接表示为0001,0000,0000B,
1
0
0也就是直接将十进制数的每一位数码转换成一个对应编号,然后按其位置进行排列来表示该数。这极大地方便了十进制数的表达和转换。17由于计算机中数据地址分配的基本单位是字节,因此,对每一个数码进行编号通常是以字节为单位进行的,也就是说每一个数码将由八位二进制编码。这种BCD码称为非压缩BCD码。显然非压缩BCD码的浪费很大。如果每一个十进制数码用四位二进制编码,则可以减少一半存储空间。这种BCD码称为压缩BCD码。其对照表如右图。十进制非压缩BCD码压缩BCD码000000000000010000000100012000000100010300000011001140000010001005000001010101600000110011070000011101118000010001000900001001100118二进制:逢二进一,借一当二
加法规则
减法规则
0+0=0
0-0=00+1=1
0-1=1(借1)
1+0=1
1-0=1
1+1=0(进1)
1-1=0十六进制:逢十六进一,借一当十六
C3H
35H
+
85H
-2CH————— —————
148H 09H算术运算的基本规则19逻辑运算的基本规则“或”运算(OR)
ABA∨B000011101111“与”运算(AND)
ABA∧B000010100111“非”运算(NOT)
A-A0110“异或”运算(XOR)
ABAB00001110111020例:X=00FFHY=5555H,求Z=XY=?
X
=0000000011111111B
Y
=0101010101010101B
—————————————
Z
=
0101010110101010BZ=55AAH21有符号数表示和运算有符号数在计算机中表示时,除了数值大小外,还有相应的正负号,通常正负号以二进制数据最高位来表示。不同计算机处理能力和表示范围有所不同,表示一个数据所使用的二进制位数也不相同,通常是字节的整数倍,如:8位、16位、32位等。假设机器字长为8位:
76543210符号位数值位假设机器字长为16位:符号位数值位1514131211109876543210符号位=0表示正数符号位=1表示负数22常用表示法——原码、反码、补码原码表示法:符号+绝对值例:n=8bit
[+3]原码
=0000,0011=03H
[-3]原码
=1000,0011=83H
[+0]原码
=0000,0000=00H
[-0]原码
=1000,0000=80H0的表示不唯一反码表示法:正数的反码同原码,负数的反码数值位与原码相反例:n=8bit
[+5]反码
=0000,0101=05H
[-5]反码
=1111,1010=FAH[+0]反码
=0000,0000=00H
[-0]反码
=1111,1111=FFH0的表示不唯一23补码表示法:正数的补码:同原码[+1]补码=00000001=01H[+127]补码=01111111=7FH[+0]补码=00000000=00H按位求反末位加一例:机器字长8位,[-46]补码=?
[46]补码=001011101101000111010010=D2H
机器字长16位,[-46]补码=FFD2H
负数的补码:(1)写出与该负数相对应的正数的补码(2)按位求反(3)末位加一取反加一24 [-1]补码=11111111=FFH [-127]补码=10000001=81H [-128]补码=10000000=80H [-0]补码=00000000=00H(+0、-0相同)n位补码的表数范围:-2n-1N2n-1-1n=8-128N127n=16-32768N3276725移码表示法:在数的真值上加一个偏移量形成。
[X]移=2n-1-1+X其中-2n-1<X<2n-1,n为包括符号位在内的二进制码长度,X为待转换的实际数值,即X用加/减号表示符号,绝对值表示数值,相当于将所有X的原码加上2n-1-1。例:如X=100,Y=-100,用八位二进制数表示它们的移码为:X=+01100100,Y=-01100100,28-1-1=01111111则[X]移=01111111+01100100=11100011[Y]移=01111111-01100100=00011011数值0的移码表示为[+0]移=01111111+00000000=01111111[-0]移=01111111-00000000=01111111相当于将所有数值都向正向移动了2n-1-126有符号数的加减运算计算机中数据的加/减运算,通常以补码方式进行:加法规则:[X+Y]补码=[X]补码+[Y]补码减法规则:[X-Y]补码=[X]补码+
[-Y]补码补码进行减法运算可转换为对应的加法运算,计算中符号位参与运算,并能得到正确结果。27溢出问题及判断:由于补码中最高位为符号位,当计算结果超过补码表示范围时,可能导致不正确的进位,从而产生错误结果,这时称为溢出。溢出是超出补码表示范围,即计算结果绝对值过大引起。因此,计算结果溢出的基本条件是计算结果的绝对值大于参与计算的两个数的绝对值。很显然,只有当两个参与计算的数为同号相加,或异号相减时才可能出现溢出问题。当同号相加,或异号相减时,计算结果的绝对值超过补码表示范围(-2n-1N2n-1-1)时,才产生溢出。如:计算机字长为8时(+120)+(+30),(-50)+(-80)同号相加产生生溢出(+34)-(-95)和(-45)-(+123)异号相减产生溢出28使用二进制表示时,判断溢出的基本方法:1)根据参与运算的两个数最高位,判断是否为同符号数相加或异符号数相减运算。2)如果有减法则将减法转换为对应的补码加法运算,作加法运算后,若计算结果的符号位与被加数(被减数)符号不相同,则可判断有溢出发生。29(-120)+(-30)=[10001000]补+[11100010]补
[10001000]补 +[11100010]补进1 [01101010] 符号位与被加数不同,溢出。两个负数相加,结果为正数,结果错误。
(+34)-(-95)=[00100010]补+[01011111]补
[00100010]补+[01011111]补
[100
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度人力资源服务合同:知名企业人才外包管理合同
- 2024年度大豆产业区块链技术应用合同
- 二零二四年度咨询服务合同的主题与标的
- 2024版基站建设打胶合同
- 2024年度影视制作与发行合同具体条款
- 2024年度幼儿园食堂运营管理合同:服务周期与费用
- 产品质量的保障措施计划
- 班主任如何帮助学生解决问题计划
- 2024年度加工承揽合同模板(含技术参数要求)
- 酒店员工自我管理培训
- JTG∕T F30-2014 公路水泥混凝土路面施工技术细则
- 帆船知识课件
- 企业宣传片项目进度计划
- 2023-2024学年统部编版九年级道德与法治下册全册知识点总结讲义
- 奇瑞QQ冰淇淋说明书
- 糖尿病性舞蹈病
- EPC项目承包人施工方投资估算与设计方案匹配分析
- 听数学故事探秘负数起源
- 《第八课 我的身体》参考课件
- 慢性伤口评估及护理
- 妇科疾病患者的护理健康评估
评论
0/150
提交评论