猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
可以存储在双倍中的最大整数
可以存储在双倍中的最大整数
什么是最大的“无浮点”整数,可以存储在IEEE 754双类型而不失去精度?
狐的传说
浏览 554
回答 3
3回答
慕妹3146593
最大/最大的整数,可以存储在一个双,而不失去精度是相同的,最大可能的值一倍。那是,DBL_MAX约1.8×10308(如果您的Double是IEEE 754 64位双)。是个整数。完全代表了。你还想要什么?继续,问我最大的整数是多少?和所有较小的整数可以存储在IEEE 64位双倍,而不会失去精度。ieee 64位双机有52位尾数,所以我认为它是2位。53:253+1不能存储,因为开头的1和结尾的1之间有太多的零。少于253可以存储,其中52位显式地存储在尾数中,然后指数实际上给出了另一位。253显然可以存储,因为它的功率很小,只有2。或者另一种看待它的方法:一旦将偏差从指数中取下来,而忽略了符号位与问题无关,由双倍存储的值等于2的幂,再加上一个52位整数乘以2。指数−52..因此,使用指数52,您可以存储来自2的所有值。52通至253−1.然后用指数53,你可以在2之后存储下一个数字。53是253 + 1 × 253−52..因此,精度损失首先发生在2。53 + 1.
0
0
0
慕桂英546537
9007199254740992(即9,007,199,254,740,992),没有任何保障:程序#include <math.h> #include <stdio.h> int main(void) { double dbl = 0; /* I started with 9007199254000000, a little less than 2^53 */ while (dbl + 1 != dbl) dbl++; printf("%.0f\n", dbl - 1); printf("%.0f\n", dbl); printf("%.0f\n", dbl + 1); return 0; }结果9007199254740991 9007199254740992 9007199254740992
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
算法与数据结构
数据结构中,与所使用的计算机无关的数据是什么?
1 回答
学完C语言之后是先学数据结构还是先学JAVA好呢?
1 回答
源码
spark分组排序提取前N个值
1 回答
请问转让门店小程序需要源码吗?门店小程序有自己的源代码吗?是否要注册计算机软件著作权才可以交易?
1 回答
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续