1-2_计算机中数和字符的表示解析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
符号位相反 数值位相同
[-0-2n-1+1≤X≤+2n-1-1
原码特点: 简单、直观,与真值的转换简单 原码缺点: 进行减法运算麻烦
解决办法: 引入补码表示法
可使减法运算简化为加法运算
3.补码表示法 正数的补码和原码相同 负数的补码可由其原码除符号位保持不变外,其余 各位按位取反,再在最末位加1而形成。 例1.3 假设机器字长为8位,则 则 [+97]补= 01100001B [+97]原=01100001B [-97]原=11100001B
2、数制之间的转换
二-十进制转换
二-八进制转换
二-十六进制转换
1.2.1 无符号数表示 机器字长的所有位都参与表示数值。
若计算机的字长为n位,则n位无符号数可表示的 数X的范围是
0≤X≤2n-1
当n=8时,可表示的无符号数的范围为0~255, 当n=16时,可表示的无符号数的范围为 0~65535。
该式表明,求[X-Y]补可以用[X]补与 [-Y]补相加来实现
[-Y]补是对减数进行求负操作。 一般称已知 [Y]补求得 [-Y]补的过程叫变补或求负。
变补(求负)运算(NEG): 已知[+X]补 ,求[-X]补
规则: 全部位(含符号位)按位取反后再加1
例如:已知[+15]补=0 0 0 0 1 1 1 1B
1.2.2 有符号数的表示方法
1.机器数与真值 计算机中的数是用二进制表示的,数的符号也是用 二进制表示的。 0:表示正数 符号位:通常为一个数的最高位 1:表示负数 若计算机的字长为8位,则D7为符号位,D6~D0为数值位
D7
D6
D5
D4
D3
D2
D1
D0
符号
数值位
例1.1
X=+65在机器中表示为: X = 01000001B
反码:最高一位表示符号,为负数时数值位取反
数的表示方法 二进制数 00000000 00000001 00000010 ┋ 01111110 01111111 10000000 10000001 10000010 ┋ 11111110 11111111 无符号数 0 1 2 ┋ 126 127 128 129 130 ┋ 254 255 原 码 +0 +1 +2 ┋ +126 +127 -0 -1 -2 ┋ -126 -127 反 码 +0 +1 +2 ┋ +126 +127 -127 -126 -125 ┋ -1 -0 补 码 +0 +1 +2 ┋ +126 +127 -128 -127 -126 ┋ -2 -1
1.2
概述
计算机中数和字符的表示
一、计算机中数和字符的存放
二、数制及其转换
1.2.1 无符号数表示
1.2.2 有符号数的表示方法 1.2.3 定点数和浮点数
1.2.4 计算机中的二进制编码 总结
概述 一、计算机中数和字符的存放 8位(字节BYTE) 16位(字WORD)
32位(双字DWORD)
64位、128位、256位
则 [-97]补= 10011111B
符号位保持不变 按位取反,末位加1
1
0011110 + 1 1 0011111
字长为16位?
补码具有以下特点:
① [+0]补= [00000000]补=00000000B =[10000000]补=[-0]补
补码表示法中0只有一种表示,即00000000B。 注意:10000000B在补码表示法中被定义为-128。
符号,0 数值位 表示正数
这种符号数码化的数称为机器数。机器数所代表 的实际数值称为真值。 机器数可以用不同的码制来表示,常用的有原码 和补码表示法。
2.原码表示法
最高位为符号位, 0表示正数,1表示负数,其余各位为数值位
例1.2 若X= +97 则[X]原 =01100001B
若X= -97 则[X]原 =11100001B 原码表示数0有两种表示形式: [+0]原 =00000000B
1 1 1 1 0 0 0 0B +1 则 [-15]补= 1 1 1 1 0 0 0 1B
[+33]补=0010 0001B
[-15]补= [1000 1111]补=1111 0001B
0 0 1 0 0 0 0 1B + 1 1 1 1 0 0 0 1B 1 0 0 0 1 0 0 1 0B [+33]补 [-15]补 [+18]补
符号位有进位,则丢掉
(2)补码的减法运算规则是:
[X-Y]补=[X]补+[-Y]补
二、数制及其转换(注意数据的表示形式)
1、数制
十进制(Decimal)后缀加“D” 例如,25D或25(后缀可略) 二进制(Binary)后缀加“B” 例如,11010001B 八进制(Octonary)后缀加“O”或“Q” 例如,76Q 十六进制(Hexadecimal)后缀加“H” 例如,0F6H(汇编程序中,字符开头的数前需加“0” )
②n位二进制补码所能表示的数值范围为:-2n-1≤X≤+2n-1-1
若n=8,则8位二进制补码所能表示的数值范围为-128~+127。
③对于一个用补码表示的负数,如果将[X]补再求一次补,就可 得到 [X]原。用下式表示为:
[[X]补]补=[X]原 [[ -15 ]补]补= [11110001B]补 = 10001111 B = [-15]原 问题:如果X为正数,则[[X]补]补=??? [X]原=[X]补
[+33]补 = 0010 0001B
[+15]补 = 0000 1111B 0 0 1 0 0 0 0 1B [+33]补 + 0 0 0 0 1 1 1 1B [+15]补
符号位和数值位 一起进行运算
0 0 1 1 0 0 0 0 B [+48]补
[(+33)+(-15)]补= [+33]补+ [-15]补
4. 补码的加减运算 (1)补码的加法运算规则是:
[X+Y]补= [X ]补+[Y]补
该式表明,当有符号的两个数采用补码形式表示 时,进行加法运算: 可以把符号位和数值位一起进行运算 若符号位有进位,则丢掉 结果为两数之和的补码形式
例1.5 用补码进行下列运算:(+33)+(+15); (+33)+(-15) 解: [(+33)+(+15)]补= [+33]补+ [+15]补