刚刚碰到一个题目,需要写出一种浮点数范围的题。
原题如下
假定一种浮点数格式是 1 位数符,
问,此格式可以表示的数据范围。
无疑,我们不用关注下溢的问题,只用找出最大正值和最小负值即可。
这里有两个重点:阶码的表示范围和尾数能够表达的范围。
我们知道IEEE754的尾数是用原码表示,默认高位是1,在补码这里没有。我们纯粹关心8位补码能表示多大的小数即可。
而当一论到补码时,莫名就恐慌起来。今天总结到这里,梳理清楚思考路径。
我们知道原码的范围很好求,因为很自然,而反码呢,只是表示与原码不同,意义相同。所以范围一致。而反码和补码也只相差一位,即是否加1,所以,它们三都可以用原码去思考。唯一不同的是,原码和反码都有一个-0,而这个-0在补码那里用于表示-1,或者最小的负数。比如8位表示整数,其中一位是符号位,那么,正数最大是