原码、反码、补码定点数浮点数什么

上传人:hs****ma 文档编号:469868070 上传时间:2023-12-13 格式:DOC 页数:4 大小:91KB
返回 下载 相关 举报
原码、反码、补码定点数浮点数什么_第1页
第1页 / 共4页
原码、反码、补码定点数浮点数什么_第2页
第2页 / 共4页
原码、反码、补码定点数浮点数什么_第3页
第3页 / 共4页
原码、反码、补码定点数浮点数什么_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《原码、反码、补码定点数浮点数什么》由会员分享,可在线阅读,更多相关《原码、反码、补码定点数浮点数什么(4页珍藏版)》请在金锄头文库上搜索。

1、原码、反码、补码 定点数 浮点数什么意思 ?有什么用 ?数据在计算机中采用二进制后 ,用高电平和低电平分别表示 0和1,正好用 0,负号用 1. 假设有一 int 类型的数,值为 5,那么,我们知道它在计算机中表示为: 00000000 00000000 00000000 000001015 转换成二制是 101,不过 int 类型的数占用 4 字节( 32 位),所以前面填了一堆 0。 现在想知道, -5 在计算机中如何表示? 在计算机中,负数以其正值的补码形式表达。什么叫补码呢?这得从原码,反码说起。原码:一个整数,按照绝对值大小转换成的二进制数,称为原码。比如 00000000 0000

2、0000 00000000 00000101 是 5 的 原码。 反码:将二进制数按位取反,所得的新二进制数称为原二进制数的反码。取反操作指:原为 1,得 0;原为 0,得 1。( 1变0; 0 变 1)比如:将 0000000000000000 0000000000000101 每一位取反,得 1111111111111111 1111111111111010。 称: 11111111 11111111 11111111 11111010 是 00000000 00000000 00000000 00000101 的反码。 反码是相互的,所以也可称:11111111 11111111 111

3、11111 11111010 和 00000000 00000000 00000000 00000101 互为反码。 补码:反码加 1 称为补码。也就是说,要得到一个数的补码,先得到反码,然后将反码加上1,所得数称为补码。比如: 00000000 00000000 00000000 00000101 的反码是: 11111111 11111111 11111111 11111010 。 那么,补码为:11111111 11111111 11111111 11111010 1 = 11111111 11111111 11111111 11111011所以,-5 在计算机中表达为: 1111111

4、1 11111111 11111111 11111011。转换为十六进制: 0xFFFFFFFB。再举一例,我们来看整数 -1 在计算机中如何表示。 假设这也是一个 int 类型,那么:1、先取 1的原码: 00000000 00000000 00000000 000000012、得反码: 11111111 11111111 11111111 111111103、得补码: 11111111 11111111 11111111 11111111 正数的原码,补码,反码都相同 ,都等于它本身 负数的补码是:符号位为 1,其余各位求反 ,末位加 1 反码是: 符号位为 1,其余各位求反 , 但末位不

5、加 1 也就是说 , 反码末位加上 1 就是补码1100110011 原1011001100 反 除符号位,按位取反1011001101 补 除符号位,按位取反再加 1正数的原反补是一样的 在计算机中,数据是以补码的形式存储的 : 在n位的机器数中,最高位为符号位,该位为零表示为正,为1表示为负;其余 n-1 位为数值位,各位的值可为 0或 1。当真值为正时 : 原码、反码、补码数值位完全相同;当真值为负时 :原码的数值位保持原样, 反码的数值位是原码数值位的各位取反,补码则是反码的最低位加一。注意符号位不变。如 : 若机器数是 16 位 :十进制数 17 的原码、反码与补码均为: 00000

6、00000010001十进制数 -17 的原码、反码与补码分别为: 1000000000010001、1111111111101110、1111111111101111 定点数与浮点数1、定点数: 定点数指小数点在数中的位置是固定不变的,通常有定点整数和定点小数。在对小数点位置作出选择之 后,运算中的所有数均应统一为定点整数或定点小数,在运算中不再考虑小数问题。(1)定义:数据中小数点位置固定不变的数(2)种类:定点整数(3)小数点在符号位与有效位之间。 注:定点数受字长的限制,超出范围会有溢出。2、浮点数: 浮点数中小数点的位置是不固定的,用阶码和尾数来表示。通常尾数为纯小数,阶码为整数,尾

7、数和阶 码均为带符号数。尾数的符号表示数的正负;阶码的符号则表明小数点的实际位置。(1)形式:N = MX2E(2)M :尾数(3)E :阶码(4)在计算机中M和E表示形式为阶码 尾数符号 尾数 将其与数学中的科学记数法进行比较。 注:其浮点数的精度由尾数决定,数的表示范围由阶码决定。3、定点数与浮点数区别 定点表示法运算直观,但数的表示范围较小,不同的数运算时要考虑比例因子的选取,以防止溢出。浮 点表示法运算时可以不考虑溢出,但浮点运算,编程较难。要掌握定、浮点数的转换方法及浮点数规格 化方法。浮点数表示 和 补码表示一个浮点数a由两个数m和e来表示:a = m x bAe。在任意一个这样的

8、系统中,我们选择一个基 数b (记数系统的基)和精度 p (即使用多少位来存储)。m (即尾数)是形如土 d.ddd.ddd 的p位数 (每一位是一个介于0到b-1之间的整数,包括0和b-1 )。如果m的第一位是非0整数,m称作规格 化的。有一些描述使用一个单独的符号位(s代表+或者-)来表示正负,这样 m必须是正的。当尾数用二进制数表示时,浮点规格化数定义尾数S应满足下面关系:(I)对于正数,S应大于等于1/2,小于1,用二进制数表示为:S=0.1*,( 其中 *为 0或1)(II)对于负数,如果尾数用原码表示,S应小于等于-1/2,大于-1,表示为:S=1.1*,( 其中 *为 0或1)m

9、称作尾数,用原码表示 e 称作阶数,用补码表示现在一般使用的浮点表示方法是美国电气电子工程师学会标准 IEEE 754-1985有符号数有三种表示:原码 ( 最高位 0 表示正数, 1 表示负数 ) 、反码、补码。8 位有符号数表示范围是 :原码: -127+127反码: -127+127补码: -128+127所以8位表示时, -128没有原码表示,只有补码表示,为 10000000(此数并非表示算出来的 -0 的补码, 而是人为规定为 -128 的 8 位补码,并规定 0 只有一个补码 00000000,原码时 10000000表示 -0)8 位无符号数就可以表示 0255。计算机采用补码

10、是为了有符号数中 0的表示的唯一性 (正负 0原码不同 ) ,并且可以把减法转换成加法来 运算:a补+(-b)补=a-b补,再对a-b补求一个补就得到a-b的值.原码就是这个数本身的二进制形式。例如0000001 就是 +11000001 就是 -1 正数的反码和补码都是和原码相同。负数的反码是将其原码除符号位之外的各位求反-3 反=10000011 反=11111100 负数的补码是将其原码除符号位之外的各位求反之后在末位再加1。-3 补= 10000011 补=11111101 一个数和它的补码是可逆的 (再对补码求补得到原码 )。 为什么要设立补码呢?第一是为了能让计算机执行减法:a-b

11、补=a 补 + (-b )补第二个原因是为了统一正 0 和负 0正零: 00000000负零: 10000000这两个数其实都是 0,但他们的原码却有不同的表示。 但是他们的补码是一样的,都是 00000000特别注意,如果 +1 之后有进位的,要一直往前进位,包括符号位!(这和反码是不同的!) 10000000 补=10000000 反+1=11111111+1=(1)00000000 =00000000(最高位溢出了,符号位变成了 0)有人会问10000000这个补码表示的哪个数的补码呢?其实这是一个规定,这个数表示的是 -128 (注意,对补码 10000000(-128)再求补并不能得

12、到 -128 的 原码( 8 位原码只能表示到 -127 )所以n位补码能表示的范围是-2A(n-1)到 2A(n-1)-1比 n 位原码能表示的数多一个又例:1011原码:01011反码:01011 /止数时,反码=原码补码:01011 /正数时,补码=原码-1011原码:11011反码:10100 / 负数时,反码为原码取反补码:10101 / 负数时,补码为原码取反 101101原码: 0.1101反码:0.1101 /正数时,反码=原码补码:0.1101 /正数时,补码=原码-0 1101原码: 1.1101反码: 1.0010 / 负数时,反码为原码取反补码: 1.0011 / 负数时,补码为原码取反 1总结:在计算机内, 定点数 有 3 种表示法:原码、反码和补码 所谓原码就是前面所介绍的二进制定点表示法,即 最高位为符号位,“ 0”表示正,“ 1”表示负,其余 位表示数值的大小。反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。补码表示法规定: 正数的补码与其原码相同; 负数的补码是在其反码的末位加 1(如果+1 之后有进位的, 要一直往前进位,包括符号位 )。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号