云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 数在计算机中的表示方法及编码

数在计算机中的表示方法及编码

  • 62 次阅读
  • 3 次下载
  • 2025/6/14 22:58:29

数在计算机中的表示方法及编码

计算机中的信息不仅有数据,还有字符、命令,其中数据还有大与小、正数与负数之分。计算机是如何用“0”或“1”,来表示这些信息的呢?

1.计算机中数的表示形式

在计算机中,只有数码1和0两种不同的状态,对于一个数的正、负号,两种不同状态,约定正数的符号用0表示,负数的符号用1表示,将符号位放在数的最左边。例如:N1=+1011,N2=-1011。由于MCS—51为8位单片机,即信息是以8位为单位进行处理的,且每个存贮单元只能存贮—个8位的二进制数,称为一个字节,如果用一个字节(即8位二进制数)来表示上述两个符号数,它们在单片机中可分别表示为:00001011和10001011,其中最高位为符号值,其余位为数值位。

最高位为0表示是正数,最高位为1表示是负数。这种计算机用来表示数的形式叫机器数。而把对应于该机器数的算术值叫真值。

值得注意的是:机器数和真值的面向对象不同,机器数面向计算机,真值面向用户,机器数不同于真值。但真值可以用机器数来表示。

机器数是计算机中表示数的基本方法,机器数通常有原码、反码和补码三种形式。

(1)原码表示方法

用8位二进制数表示数的原码时,最高位为数的符号位,其余7位为数值位。 例如:真值为+120和-120的原码形式

[+120]原=01111000 [-120]原=11111000

对于零,可以认为它是正零,也可以认为它是负零,所以零的原码有两种表示形式:

[+0]原=00000000 [-0]原=10000000

8位二进制数原码表示范围为:11111111~01111111,即-127~+127。 (2)反码表示方法

在反码表示方法中,正数的反码与原码相同,负数的反码由它对应原码除符

号位之外,其余各位按位取反得到。例如:

[+120]反=[+120]原=01111000 [-120]反=10000111 零的反码有两种表示方式,即:

[+0]反=00000000 [-0]反=11111111

8位二进制数反码表示范围为:11111111~01111111,即-127~+127。 (3)补码表示方法

补码的概念:先以钟表对时为例,假设现在的标准时间为5点整,而有一只表却已是7点,为了校准时间,可以采用两种方法:一是将时针退2格,即7-2=5;一是将时针向前拨10格,即7+10=12(自动丢失)+5,都能对准到5点。可见,减2和加10是等价的,我们把(+10)称为(-2)对12的补码,12为模,当数值大于模12时可以丢弃12。

在字长为8位的二进制数字系统中,模为28=256,先看看下例: 01000000 64 01000000 64

+11110110 +246 -00001010 -10 1 00110110 54 1 00l10110 54

由此可见,在字长为8位情况下(64-10)与(64+246)的结果是相同的,所以(-10)和246互为补数。在补 码表示方法中,正数的补码与原码相同,负数的补码由它对应原码除符号位之外,其余各位按位取反且末位加一得到。例如:

[+120]补=[+120]原=01111000

现在我们看一看(-10)的补码11110110怎样求得。 正数的补码表示方法与原码相同 负数的补码求法:

1)利用反码求补码:反码加1。如: [-10]原=100010l0 [-10]反=11110101 [-10]补=11110110

2)利用原码求补码(直接求补法):找出原码中数值位的最右边的一个“1”,

将这个“1”以及这个“1”右边各位保持不变,而将这个“1”左边各位按位取反,但符号位不变。如:

[-10]原=100010l0 [-10]补=11110110

采用补码表示数,可将减法运算转换成加法运算。在补码表示法中,零的补码只有一种表示法,即 [+0]补=[-0]补=00000000。对于八位二进制数而言,补码能表示的数的范围为-128~+127。

【例1-10】已知X=+1010B,Y=-1010B,写出它们的原码、反码和补码形式。

[+1010B]原=00001010B [-1010B]原=10001010B [+1010B]反=00001010B [-1010B]反=11110101B [+1010B]补=00001010B [-1010B]补=11110110B 2.补码的加减运算

当用补码表示数时,可用加法完成减法运算,因此带符号数一般都以补码形式在机器中存放和参加运算。

补码的运算公式是: [X+Y]补=[X]补+[Y]补 [X-Y]补=[X]补+[-Y]补

上述公式表明,补码的“和”等于“和”的补码。也就是说,在进行补码加法运算时,不论相加的两数是正、是负,只要把它们表示成相应的补码形式,直接按二进制规则相加,其结果都应为“和”的补码

已知X的补码,求X的原码时,可以将X的补码当作X原码形式,再求—次补码得到:

[[X]补]补=[X]原。

【例1-11】已知[X]补=10111010B,求[X]原。 [X]原=[[X]补]补=[10111010]补=11000110B

补码加减运算时,不能保证每次运算结果都是正确,也就是要注意溢出问题。所谓溢出在这里是指:两个带符号数进行运算时,其结果超出补码的表示范围-128~+127。

【例1-12】已知[X]补=00111010B,[Y]补=10011101B,求[X+Y]补。

00111010 58 +10011101 -99 11010111 -41 得:[X+Y]补=11010111B

【例1-13】已知[X]补=10011011B,[Y]补=01101001B,求[X+Y]补。 10011011 -101

+01101001 105

1 00000100 4

得:[X+Y]补=00000100B (进位发生丢失,不会影响运算结果) 【例1-14】已知[X]补=11000100B,[Y]补=10001000B,求[X+Y]补。

11000100 -60 + 10001000 -120

1 01001100 -180

得:[X+Y]补=1001100B (显然该结果是错误的)

【例1-15】已知[X]补=01101000B,[Y]补=00110100B,求[X-Y]补。 [-Y]补=11001100B

(已知[Y]补,求[-Y]补,只要将连同符号位一起“取反加一” ) 01101000 104

+11001100 -52

1 00110100 52

得:[X-Y]补=00110100B 溢出的判断:

(1)法一:双高位判别法

判别数据的最高位与次高位的进位情况,若一致,则无溢出;若不一致,则溢出。

(2)法二:

设有带符号数A、B,其补码[A]补=a0 a1 ? an-1, [B]补=b0 b1 ? bn-1, a0 a1 ? an-1 [A]补

+b0 b1 ? bn-1 [B]补

搜索更多关于: 数在计算机中的表示方法及编码 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

数在计算机中的表示方法及编码 计算机中的信息不仅有数据,还有字符、命令,其中数据还有大与小、正数与负数之分。计算机是如何用“0”或“1”,来表示这些信息的呢? 1.计算机中数的表示形式 在计算机中,只有数码1和0两种不同的状态,对于一个数的正、负号,两种不同状态,约定正数的符号用0表示,负数的符号用1表示,将符号位放在数的最左边。例如:N1=+1011,N2=-1011。由于MCS—51为8位单片机,即信息是以8位为单位进行处理的,且每个存贮单元只能存贮—个8位的二进制数,称为一个字节,如果用一个字节(即8位二进制数)来表示上述两个符号数,它们在单片机中可分别表示为:00001011和10001011,其中最高位为符号值,其余位为数值位。 最高位为0表示是正数,最高位为1表示是负数。这种计算机用来表示数的形式叫机器数。而把对应于

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com