计算机中数据的表示
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机中数据的表示
一、计算机中数据的表示方法
我们在初一的信息技术课程(第一单元)中已经知道,计算机中的数据都是用二进制来表示的。
这是因为:计算机是一个电器,在计算机中用电路的接通和断开、电压的高和低等类似的两种对立的状态来表示数据是最容易的。
二进制中只有0和1两个数字。
二进制的基本运算规则:
0+0=0 ,0+1=1 ,1+0=1 ,1+1=10
0*0=0 ,0*1=0 ,1*0=0 ,1*1=1
二进制和十进制整数的相互转换
十进制→二进制
方法:除二取余数
例:(25)10=(11001)2
二进制→十进制
方法:乘权求和
例:(110101)2
=1*25+1*24+0*23+1*22+0*21+1*20
=32+16+0+4+0+1=(53)10
类似于十进制数按位数展开:
如:(486795)10=4*105+8*104+6*103+7*102+9*101+5*100
=400000+80000+6000+700+90+5
二进制和十进制小数的相互转换
十进制→二进制
方法:乘二取整数
例:(0.35)10≈(0.01011)2
二进制→十进制
方法:乘权求和
不过这个权是负的,也就是倒数
例:(0.101101)2=1/21+0/22+1/23+1/24+0/25+1/26
=0.5+0+0.125+0.0625+0+0.015625=(0.703125)10
在不同进制的转换过程中,一般都要把整数部分和小数部分分别进行转换。
十进制数转换为二进制数后,往往会变得很长,为了解决这一问题,我们在计算机中引入了八进制数和十六进制数。
十六进制数中除了使用数字0-9以外,还要使用大写英文字母A-F分别对应十进制数的10-15。
八进制数中的每一位数字可以转换为三位二进制数字,十六进制数中的每一位数字可以转换为四位二进制数字。
二、计算机中的机器码
在计算机中,参加运算的数有正与负之分,数的符号也是用二进制来表示的。
用二进制表示带符号的数称为机器码。
通常规定,带符号数使用最高二进制位作为符号位,常用的机器码有原码、反码、补码(下面以8位的机器码为例讲解)。
1、原码
原码是在数值前直接加一个符号位的表示方法(即最高位为符号位)。
正数的符号该位为0,负数的符号位为1(0有两种表示),其余位表示数值的大小。
求原码的简单方法:若x为正数,则符号位为0,x的其余各位取值不变;若x为负数,则符号位为1,x的其余各位取值不变。
例如:(划线的部分为符号位)
[+7]原=00000111B、[-7]原=10000111B(注:可在数的最后加字母B表示该数是二进制数)
数0的原码有两种形式(+0和-0),即:
[+0]原=00000000B或[-0]原=10000000B(划线的部分为符号位)。
8位二进制原码的表示范围:-127~+127。
原码不能直接参加运算,可能会出错。
例如:数学上,1+(-1)=0,而在二进制中用原码表示则是00000001+10000001=10000010,换算成十进制为-2,显然出错了。
2、反码
正数的反码与原码相同;负数的反码的符号位为1,数值部分按位取反(即0变为1,1变为0)。
例如:(划线的部分为符号位)
[+7]反=00000111B、[-7]反=11111000B
数0的反码也有两种形式(+0和-0),即:
[+0]反=00000000B或[-0]反=11111111B(划线的部分为符号位)
8位二进制反码的表示范围:-127~+127。
3、补码
正数的补码和原码相同;负数的补码的符号位为1,并且这个1既是符号位,也是数值位,数值部分按位取反后再在末位(最低位)加1,也就是“反码+1”。
例如:(划线的部分为符号位)
[+7]补=00000111B、[-7]补=11111001B
补码在微型机中是一种重要的编码形式。
采用补码后,可以方便地将减法运算转化成加法运算,运算过程得到简化。
正数的补码即是它所表示的数的真值,而负数的补码的数值部分却不是它所表示的数的真值。
采用补码进行运算,所得结果仍为补码。
与原码、反码不同,数值0的补码只有一个,即:[0]
补
=00000000B(划线的部分为符号位)。
若字长为8位,则补码所表示的范围为-127~+127;进行补码运算时,应注意所得结果不应超过补码所能表示数的范围。
补码的加、减运算
在计算机中,实际上只有加法运算,减法运算要转换成加法运算进行;同样,乘法运算也转换成加法运算进行,而除法运算则要先转换成减法运算,再转换成加法运算。
在计算机内部,对任意一个带有符号的二进制数来说,都是按其补码的形式来进行存储和处理的,所以在计算机中的运算用补码进行加减运算。
在用补码进行加减运算时,连同符号位一起参加运算。
补码加法运算公式:[X+Y]
补=[X]
补
+[Y]
补。
例:已知X=+0110011,Y=-0101001,求[X+Y]
补。
解:[X]
补=00110011,[Y]
补
=11010111,
[X+Y]补=[X]补+[Y]补
=00110011+11010111=00001010
因为计算机中运算器的位长是固定的,上述运算中最高位产生的进位被丢掉,所以运算结果不是100001010,而是00001010。
补码减法运算公式:
[X-Y]补=[X]补-[Y]补=[X]补+[-Y]补。
公式中的[-Y]
补
称为负补。
做补码减运算之前,应该先求出减数的负补。
求负补的方法是:对补码(包括符号位)的每一位求反,且最低位加1。
例:已知X=+1001101,Y=+0111001,求[X-Y]
补。
解:[X]
补=01001101,[Y]
补
=00111001,
[-Y]补=11000111,
[X-Y]补=[X]补+[-Y]补
=01001101+1100011l=00010100
作业
1、计算十进制数0~32对应的二进制数、八进制数和十六进制数。
2、根据第1题中得出的二进制数、八进制数和十六进制数的对应关系,将下面的两个数转换为二进制数:(175)8、(9DA)16。
3、将以下十进制数分别转换成二进制数,并分别用原码、反码和补码的形式表示出来:45、-68、125、-127
4、已知X=+1110100,Y=+1010001,求[X+Y]补、[X-Y]补(要写过程)。
5、十进制数和二进制数的相互转换(要写过程):
(67.8125)10=()2、(1011101.101)2=()10。