⑴ c语言中整型,字符型,浮点型,和双精度浮点型,详解
整型,计算机中的一个基本的专业术语,指没有小数部分的数据。整型可以用十进制,十六进制或八进制符号指定,前面可以加上可选的符号(- 或者 +)。包括整型常量和整型变量,整型变量又包括短整型、基本整型、长整型,它们都分为有符号和无符号两种版本,是一种智能的计算方式。
字符型量包括字符常量和字符变量。字符串常量由一对双引号括起的字符序列。字符变量的取值是字符常量,即单个字符。字符变量的类型说明符是char。字符变量类型说明的格式和书写规则都与整型变量相同。
浮点型利用指数使小数点的位置可以根据需要而上下浮动,从而可以灵活地表达更大范围的实数。
双精度浮点型,此数据类型与单精度数据类型(float)相似,但精确度比float高,编译时所占的内存空间依不同的编译器而有所不同,是double float数据类型,C/C++中表示实型变量的一种变量类型。
(1)c语言中双精度浮点型怎么输入扩展阅读
双精度浮点型类型数值可转换到其他类型的整数或浮点数,反之亦然。双精度浮点型常量的最后一个字符可加上“d”或“D”。其存储格式与浮点型类似,最高位为符号位,次高11位为指数位,其次52位为尾数。
双精度型就是双精度浮点型,同数值型比,它能提供更高的数值精度,采用固定存储长度的浮点数形式,每个双精度浮点型数据占8个字节。与数值型数据不同,它的小数点位置是由输入的数据值来决定的,并且只能用于表中的字段。
⑵ 双精度浮点数怎么表示
问题一: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。负数亦然。
⑶ C语言中如何用scanf语句输入一个双精度数
主要通过scanf格式化输入语句,主要代码如下,
double x;//声明变量
scanf("%lf",&x);//赋值,L/l 长度修饰符,输入"长"数据,对应double
printf("x=%lf\n",x);//打印输出
int scanf(const char *format,...);是格式输入函数,即按用户指定的格式把数据输入到指定的变量之中。需要注意的是,针对浮点数scanf()函数中没有精度控制,像 scanf("%5.4lf",&x); 就是非法的。
⑷ C语言中,要使用双精度浮点型(double)数据该怎样写我用的是WinTC整型要写int main()和%d
#include <stdio.h>
int main(){
double a,b;
scanf("%lld",&a,&b);
printf("%lld\n",a+b);
return 0;
}
用上面的程序测试一下,如果不行的话,把%lld改成%I64d(这里是大写的i,前面是小写的L);
不同的编译器,用的不一样。。不过大多数两种都行。
⑸ C语言 双精度类型(double)变量的输入问题
c语言中
单精度型和双精度型
指两种
类型
的
浮点数。
单精度型
即
float
型,
有效数字约10进制7位
双精度型
即
double
型,
有效数字约10进制15位
所以能描述的数值精度不同。
c语言
数据
用
ieee
754
国际标准。float
型
用
4
字节存放,double
型
用
8
字节存放。
single
precision
2进制:
数符1位,指数8
位,尾数
23
位
double
precision
2进制:
数符1位,指数11
位,尾数
52
位
单精数值范围:
±
~10的-44.85次方
到
约
10的38.53次方
双精度数值范围
±
~10的-323.3
次方
to
约
10的
308.3次方。
float
a=1.234567;
double
b=1.2345678901234;
-------------
10%3
整除取余数,得
1。
1
用
float
和
double
表示,精度没有区别。
a=(float)(10%3);
b=(double)(10%3);
强制转换
要带
小括号。
⑹ C语言如何输入双精度数据
C语言用scanf()函数输入双精度数据时,采用的数据格式参数必须是%lf,如:
doubled;
scanf("%lf",&d);
scanf("%f,%f",&a,&b);不能输入双精度数据吗?
当然不能。主要原因在于double和float类型的大小不同:
double类型数据在内存中存储占8字节(64位),按IEEE754标准存储,格式为:1位符号位+11位指数位+52位小数位
float类型数据在内存中存储占4字节(32位),按IEEE754标准存储,格式为:1位符号位+8位指数位+23位小数位
当输入数据格式串为%f时,scanf()按float类型将输入的数据存储到内存地址中,这时,若再按double类型解释输出数据时,数据当然不是用户输入的内容了。
⑺ C语言如何输出双精度浮点型数据
1.双精度浮点型数据用%lf输出。因为double是8个字节的,float是4个字节的,%f 的格式就是4个字节的,而 %lf 就是8个字节的。 例如:printf("%lf ",x);
2.short 占用内存空间2个字节,短整型数据用%d输出 例如:printf("%d ",a);
例:
#include <stdio.h>
int main()
{double x;
short int a;
printf("%lf",x); // 输入double型
printf("%d",a); //输入短整型
return 0;
}
(7)c语言中双精度浮点型怎么输入扩展阅读:
C语言特有特点
1.C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。
2.C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。
3.不同的变量类型可以用结构体(struct)组合在一起。
4.只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。
5.部份的变量类型可以转换,例如整型和字符型变量。
6.通过指针(pointer),C语言可以容易的对存储器进行低级控制。
7.预编译处理(preprocessor)让C语言的编译更具有弹性。
⑻ C语言如何输出双精度浮点型数据
1.双精度浮点型数据用%lf输出。因为double是8个字节的,float是4个字节的,%f 的格式就是4个字节的,而 %lf 就是8个字节的。 例如:printf("%lf ",x);
2.short 占用内存空间2个字节,短整型数据用%d输出 例如:printf("%d ",a);
例:
#include <stdio.h>
int main()
{double x;
short int a;
printf("%lf",x); // 输入double型
printf("%d",a); //输入短整型
return 0;
}
(8)c语言中双精度浮点型怎么输入扩展阅读:
C语言特有特点
1.C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。
2.C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。
3.不同的变量类型可以用结构体(struct)组合在一起。
4.只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。
5.部份的变量类型可以转换,例如整型和字符型变量。
6.通过指针(pointer),C语言可以容易的对存储器进行低级控制。
7.预编译处理(preprocessor)让C语言的编译更具有弹性。