1、单精度浮点数用4字节存储,双精度浮点数用8字节存储,分为三个部分:符号位、阶和尾数。
2、阶即指数,尾数即有效小数位数。
(相关资料图)
3、单精度格式阶占8位,尾数占24位,符号位1位,双精度则为11为阶,53位尾数和1位符号位。
4、细心的人会发现,单双精度各部分所占字节数量比实际存储格式多了一位,的确是这样,事实是,尾数部分包括了一位隐藏位,允许只存储23位就可以表示24位尾数,默认的1位是规格化浮点数的第一位,当规格化一个浮点数时,总是调整它使其值大于等于1而小于2,亦即个位总是为1。
5、例如1100B,对其规格化的结果为1.1乘以2的三次方,但个位1并不存储在23位尾数部分内,这个1是默认位。
6、阶以移码的形式存储。
7、对于单精度浮点数,偏移量为127(7FH),而双精度的偏移量为1023(3FFH)。
8、存储浮点数的阶码之前,偏移量要先加到阶码上。
9、前面例子中,阶为2的三次方,在单精度浮点数中,移码后的结果为127+3即130(82H),双精度为1026(402H)。
10、浮点数有两个例外。
11、数0.0存储为全零。
12、无限大数的阶码存储为全1,尾数部分全零。
13、符号位指示正无穷或者负无穷。
14、下面举几个例子:单精度浮点数十进制 ;规格化 ;符号 ;移阶码 尾数-12 -1.1x2^3 1 10000010.25 1.0x2^-2 0 01111101所有字节在内存中的排列顺序,intel的cpu按little endian顺序,motorola的cpu按big endian顺序排列。
本文就为大家分享到这里,希望小伙伴们会喜欢。
X 关闭
Copyright © 2015-2022 每日服装网版权所有 备案号:浙ICP备2022016517号-15 联系邮箱:5 146 761 13 @qq.com