32位浮点数最多能表示多少位十进制小数啊?为什么编程时只是显示六个小数位啊?

32位浮点数最多能表示多少位十进制小数啊?为什么编程时只是显示六个小数位啊?
0000 0000 1111 1111 1111 1111 1111 1111这个二进制数化为十进制数是多少啊?有多少位小数啊?
冰凉小小手 1年前 已收到1个回答 举报

Alansea 春芽

共回答了19个问题采纳率:84.2% 举报

32位浮点数float类型是7为有效数字,所以通常是6位小数.

(从左到右开始数)
第一位是符号位,0表示正数.
第二到第九位是指数位,剩下的是尾数位.(因为有效数字的第一位永远是1,所以总是省略)

先分块:
0/0000 0001/111 1111 1111 1111 1111 1111

因为指数的范围为-127~128,所以指数位的数据要减去127得到真实指数.
1-127=126
那么用二进制表示就为
+1.11111111111111111111111*2^-126
=(10-0.000 0000 0000 0000 0000 0001)*2^-126
=2^-125-2^-149
=2.350989*10^(-38)
(科学计数法)
如果是普通计数法那就是0.000000了.

1年前

3
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.319 s. - webmaster@yulucn.com