补码,反码,原码的范围总结
2016-09-21 14:50
274 查看
刚刚碰到一个题目,需要写出一种浮点数范围的题。
原题如下
假定一种浮点数格式是1位数符,7位阶码,8位尾数。其中尾数用补码表示,阶码用移码表示。
问,此格式可以表示的数据范围。
无疑,我们不用关注下溢的问题,只用找出最大正值和最小负值即可。
这里有两个重点:阶码的表示范围和尾数能够表达的范围。
我们知道IEEE754的尾数是用原码表示,默认高位是1,在补码这里没有。我们纯粹关心8位补码能表示多大的小数即可。
而当一论到补码时,莫名就恐慌起来。今天总结到这里,梳理清楚思考路径。
我们知道原码的范围很好求,因为很自然,而反码呢,只是表示与原码不同,意义相同。所以范围一致。而反码和补码也只相差一位,即是否加1,所以,它们三都可以用原码去思考。唯一不同的是,原码和反码都有一个-0,而这个-0在补码那里用于表示-1,或者最小的负数。比如8位表示整数,其中一位是符号位,那么,正数最大是27−1=127, 负数最小是-128。
而小数的话,因为数符已经有了,不用再拿出一位表示符号,因此这8位小数就表示纯粹的小数。
另外,这个区别于IEEE754标准,因为单精度浮点数两个地方是特殊的。
偏置值是28−1−1,也即单精度是127
尾数用原码且默认高位是1,隐含起来了
但在这里呢,就是纯粹的编码计算问题。
因此,8位补码小数的范围:由原码可知,最大小数是0.11111111(8个1) = 1 - 2^(-8),最小负数是-1.
再看阶码,由7位(1位字符,6位数据)组成,因此最大可表示的阶码(连通最高位一起)是20+21+...+26=27−1=127,偏置值取2(7−1)=64。
所以最大是127-64 = 63.
或者直接根据与补码表示范围相同推知,表示范围是[−26,26−1]=[−64,63]
在IEEE754中,阶码的最大值是254,范围是1-254,留了两个阶码值状态:0,255表示规格化和无穷大。
这里的表示不用这么考虑。
所以范围可定:(−1,1−2−8)⋅263
以上。
原题如下
假定一种浮点数格式是1位数符,7位阶码,8位尾数。其中尾数用补码表示,阶码用移码表示。
问,此格式可以表示的数据范围。
无疑,我们不用关注下溢的问题,只用找出最大正值和最小负值即可。
这里有两个重点:阶码的表示范围和尾数能够表达的范围。
我们知道IEEE754的尾数是用原码表示,默认高位是1,在补码这里没有。我们纯粹关心8位补码能表示多大的小数即可。
而当一论到补码时,莫名就恐慌起来。今天总结到这里,梳理清楚思考路径。
我们知道原码的范围很好求,因为很自然,而反码呢,只是表示与原码不同,意义相同。所以范围一致。而反码和补码也只相差一位,即是否加1,所以,它们三都可以用原码去思考。唯一不同的是,原码和反码都有一个-0,而这个-0在补码那里用于表示-1,或者最小的负数。比如8位表示整数,其中一位是符号位,那么,正数最大是27−1=127, 负数最小是-128。
而小数的话,因为数符已经有了,不用再拿出一位表示符号,因此这8位小数就表示纯粹的小数。
另外,这个区别于IEEE754标准,因为单精度浮点数两个地方是特殊的。
偏置值是28−1−1,也即单精度是127
尾数用原码且默认高位是1,隐含起来了
但在这里呢,就是纯粹的编码计算问题。
因此,8位补码小数的范围:由原码可知,最大小数是0.11111111(8个1) = 1 - 2^(-8),最小负数是-1.
再看阶码,由7位(1位字符,6位数据)组成,因此最大可表示的阶码(连通最高位一起)是20+21+...+26=27−1=127,偏置值取2(7−1)=64。
所以最大是127-64 = 63.
或者直接根据与补码表示范围相同推知,表示范围是[−26,26−1]=[−64,63]
在IEEE754中,阶码的最大值是254,范围是1-254,留了两个阶码值状态:0,255表示规格化和无穷大。
这里的表示不用这么考虑。
所以范围可定:(−1,1−2−8)⋅263
以上。
相关文章推荐
- 原码,反码,补码的表示范围总结
- 原码,补码和反码总结
- int、short、char 类型超出范围赋值__说说原码,反码,补码
- java学习总结(06,05.16)计算机对数据的储存方式以及原码反码补码的概念
- 计算器原码、反码和补码和位移的一些总结
- int、short、char 类型超出范围赋值问题__原码,反码,补码
- 原码、反码、补码总结
- JAVA基础学习总结---原码、补码、反码以及基本数据类型
- java原码、补码、反码总结
- 计算器原码、反码和补码和位移的一些总结
- 原码、反码和补码的表示范围
- int、short、char 类型超出范围赋值__说说原码,反码,补码
- 关于计算机中的原码、反码、补码问题总结
- 原码 反码 补码 移码的关系(精简总结)
- 原码、反码、补码、移码 终极总结
- java原码、补码、反码总结
- 原码、反码、补码总结
- 原码、反码、补码总结
- 原码、反码、补码总结
- Java中的数值数据、原码、反码、补码、数据类型及范围、字面量