永发信息网

双精度浮点数怎么表示

答案:2  悬赏:0  手机版
解决时间 2021-12-21 17:00
  • 提问者网友:焚苦与心
  • 2021-12-20 17:19
双精度浮点数怎么表示
最佳答案
  • 五星知识达人网友:执傲
  • 2021-12-20 18:10
问题一:C语言中用scanf输入双精度浮点数 double 输出需要用 %lf
你这个是相当于把double强制转换成 float了
float明显放不下 溢出了 所以出错
有疑问请追问 满意记得采纳问题二:什么是单、双精度浮点数 浮点就是小数点位置不确定,比如123.43,6557.521.在C语言中,一般单精度数据类型比如int,数据的范围是2的31次方,而双精度类型的整型比如long int的数据范围是2的63次方.所以双精度和单精度主要的区别在于数据的范围大小.
通俗的讲
双精度的精度比单精度高
表示的小数点后的位数多
比方说单精度能最小表示到0.01
双精度就能表示到0.0001
以上只是例子,实际的精度不是这样,具体到多少记不大清楚了问题三:C语言中单精度浮点数和双精度分别如何表示?有什么差别? 类型 比特数 有效数字 数值范围 float 32 6-7 -3.4*10(-38)~3.4*10(38) double 64 15-16 -1.7*10(-308)~1.7*10(308) long double128 18-19 -1.2*10(-4932)~1.2*10(4932)简单来说,Float为单精度,内存中占4个字节,有效数位是7位(因为有正负,所以不是8位),在我的电脑且VC++6.0平台中默认显示是6位有效数字;double为双精度,占8个字节,有效数位是16位,但在我的电脑且VC++6.0平台中默认显示同样是6位有效数字(见我的double_float文件)还有,有个例子:在C和C++中,如下赋值语句float a=0.1;编译器报错:warning C4305: 'initializing' : truncation from 'const double ' to 'float '原因:在C/C++中(也不知道是不是就在VC++中这样),上述语句等号右边0.1,我们以为它是个float,但是编译器却把它认为是个double(因为小数默认是double),所以要报这个warning,一般改成0.1f就没事了。通常的做法,经常使用double,而不喜欢使用float
问题四:C语言如何输出双精度浮点型数据 双精度浮点(长双精度)型数据用%lf输出
短整型数据用%u输出
%d 有符号10进制整数
%i 有符号10进制整数
%o 有符号8进制整数
%u 无符号10进制整数
%x 无符号的16进制数字,并以小写abcdef表示
%X 无符号的16进制数字,并以大写ABCDEF表示
%F/f 浮点数
%E/e 用科学表示格式的浮点数
%g 使用%f和%e表示中的总的位数表示最短的来表示浮点数 G 同g格式,但表示为指数
%c 单个字符
%s 字符串
%% 显示百分号本身问题五:双精度浮点数在C语言中是什么意思? 就是double型啊.单精度浮点数float是32位,double则是64位,位数多,精度当然越大.具体到浮点数结构,你随便一搜就有了,我要说也顶多是胆网址贴过来.问题六:双精度数据的表示范围,浮点型数据的表示范围?c语言 float和double的范围是由指数的位数来决定的。
float的指数位有8位,而double的指数位有11位,分布如下:
float:
1bit(符号位) 8bits(指数位) 23bits(尾数位)
double:
1bit(符号位) 11bits(指数位) 52bits(尾数位)
于是,float的指数范围为-127~+128,而double的指数范围为-1023~+1024,并且指数位是按补码的形式来划分的。
其中负指数决定了浮点数所能表达的绝对值最小的非零数;而正指数决定了浮点数所能表达的绝对值最大的数,也即决定了浮点数的取值范围。
float的范围为-2^128 ~ +2^128,也即-3.40E+38 ~ +3.40E+38;double的范围为-2^1024 ~ +2^1024,也即-1.79E+308 ~ +1.79E+308。问题七:浮点型数据和双精度型数据的区别 用4个字节(32位)来存放一个浮点数,尾数有7个有效数字左右,叫单精度浮点数,用64位来存放,尾数有效数字可以增加到15位或16位,叫双精度浮点数。记住浮点型数据和双精度型数据的范围大小,触少位的就可以了。用的时候想到就可以问题八:-1和0的单精度浮点数怎么表示? 根据IEEE 754的标准,单精度的浮点数表示为:1位符号、8位阶码和23位有效值。
---数值---符号------------有效值----------------------阶码---
0 0 础 000 0000 0000 0000 0000 0000 0000 0000
-1 1 000 0000 0000 0000 0000 0000 0000 0000问题九:单双精度浮点的数值范围怎么确定的,详细点…谢了 float:占四个字节,3.4*10(-38)---3.4*10(38);
double:占八个字节, 1.7*10(-308)---1.7*10(308);
longdouble型的范围和double都是八个字节,范围相同。 对于单精度浮点数(float)来说,有一位符号位,指数位共8位,尾数共23位。指数能够表示的指数范围为-128~127。尾数为23位。当尾数全1时再加上小数点前面的1,指数取到最大正数127(8位,正数最大127,负数最小-128),浮点数取得正数的最大值。 +1.111111111111111111111*2^127(1.后面23个1,由于尾数的范围1~2,其最高位总为1,故只需存取小数部分,所以小数为是23位1),约等于2*2^127=3.4*10^38。为3.4*10^38负数亦然。 Double的计算与此类似,double的符号位为63位,指数为62~52位,共11位。表示的范围为-1024~1023。尾数为51~0。表示的范围为+1.111111111111111111111*2^1023(1.后面52个1)为1.7*10^308。负数亦然。
全部回答
  • 1楼网友:动情书生
  • 2021-12-20 19:22
感谢回答
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯