C语言实型(浮点数 内存型)数据在内存中的存放形式

C语言基本数据之实型
我的图书馆
C语言基本数据之实型
& & & 实型数据也称为浮点数或实数。在C语言中,实数只采用十进制。它有二种形式:十进制小数形式和指数形式。
实数的表示
1) 十进制数形式
由数码0~ 9和小数点组成。 例如:0.0、25.0、5.789、0.13、5.0、300.、-267.8230 等均为合法的实数。
注意,必须有小数点。
2) 指数形式
由十进制数,加阶码标志“e”或“E”以及阶码(只能为整数,可以带符号)组成。其一般形式为:
& & a E n(a为十进制数,n为十进制整数)
其值为 a*10n。如:
2.1E5 (等于2.1*105)
3.7E-2 (等于3.7*10-2)
0.5E7 (等于0.5*107)
-2.8E-2 (等于-2.8*10-2)
以下不是合法的实数:
345 (无小数点)
E7 (阶码标志E之前无数字)
-5 (无阶码标志)
53.-E3 (负号位置不对)
2.7E& (无阶码)
【例3-5】输出实数。
#include &stdio.h&int main(void){
printf("%f\n ",356.);
printf("%f\n ",356);
printf("%f\n ",356.0);
return 0;}
&3) 实数在内存中的存放形式
实数一般占4个字节(32位)内存空间。按指数形式存储。实数3.14159在内存中的存放形式如下:
小数部分占的位(bit)数愈多,数的有效数字愈多,精度愈高。
指数部分占的位数愈多,则能表示的数值范围愈大。
实型变量分为:单精度(float型)、双精度(double型)和长双精度(long double型)三类。
在VC6.0中单精度型占4个字节(32位)内存空间,其数值范围为3.4E-38~3.4E+38,只能提供七位有效数字。双精度型占8 个字节(64位)内存空间,其数值范围为1.7E-308~1.7E+308,可提供16位有效数字。
类型说明符
比特数(字节数)
10-37~1038&&&&&&&&&
10-307~10308
long double
实型变量定义的格式和书写规则与整型相同。例如:
float x,y;
// x,y为单精度实型量double a,b,c;
// a,b,c为双精度实型量
实数的舍入误差
由于实数是由有限的存储单元组成的,因此能提供的有效数字总是有限的。如下例。
【例3-6】实数的舍入误差。
#include &stdio.h&int main(void){
float a,b;
printf("a=%f\n",a);
printf("b=%f\n",b);
return 0;}
注意:1.0/3*3的结果并不等于1。
#include &stdio.h&int main(void){
printf("a=%f\nb=%f\n",a,b);
return 0;}
从本例可以看出:
由于a 是单精度浮点型,有效位数只有七位。而整数已占五位,故小数二位后之后均为无效数字。
b 是双精度型,有效位为十六位。但VC6.0规定小数后最多保留六位,其余部分四舍五入。
注意:实型常数不分单、双精度,都按双精度double型处理。
[转]&[转]&[转]&[转]&
喜欢该文的人也喜欢C语言实型数据
注意,第4行在Dev C++中会报错。
实型数据在内存中的存放形式实型数据一般占4个字节(32位)内存空间。按指数形式存储。实数3.14159在内存中的存放形式如下:
小数部分占的位(bit)数愈多,数的有效数字愈多,精度愈高。
指数部分占的位数愈多,则能表示的数值范围愈大。2)
实型变量的分类实型变量分为:单精度(float型)、双精度(double型)和长双精度(long
double型)三类。
在Turbo C中单精度型占4个字节(32位)内存空间,其数值范围为3.4E-38~3.4E+38,只能提供七位有效数字。双精度型占8 个字节(64位)内存空间,其数值范围为1.7E-308~1.7E+308,可提供16位有效数字。
类型说明符
比特数(字节数)
10-37~1038
10-307~10308
long double
实型变量定义的格式和书写规则与整型相同。例如:
float x,y;
double a,b,c;
实型数据的舍入误差由于实型变量是由有限的存储单元组成的,因此能提供的有效数字总是有限的。如下例。
【例3-6】实型数据的舍入误差。
float a,b;
printf("%f\n",a);
printf("%f\n",b);}
注意:1.0/3*3的结果并不等于1。
printf("%f\n%f\n",a,b);}
从本例可以看出:
由于a 是单精度浮点型,有效位数只有七位。而整数已占五位,故小数二位后之后均为无效数字。
b 是双精度型,有效位为十六位。但Turbo C 规定小数后最多保留六位,其余部分四舍五入。
实型常数的类型
实型常数不分单、双精度,都按双精度double型处理。
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!在c语言中,int型数据在内存中是以补码形式存储吗?_百度知道
在c语言中,int型数据在内存中是以补码形式存储吗?
在c语言中,int型数据在内存中是以补码形式存储吗?
我有更好的答案
可以这么认为,因为负数需要转化为补码存起来正数直接存就行了,但是正数的补码是他本身,所以也可以说正数也是以补码的形式存储的。
采纳率:71%
负数是以补码存的,求补码的方法是符号位不变,其他位取反加一啊啊啊 00 1000 取反是 111 11 加一是
不是刚好么
本回答被网友采纳
是的,整数的补码是自己本生,负数的补码是原码取反+1
本回答被网友采纳
c的char数据属于基本类型,基本类型其中还包括-整型,实型,枚举类型!数据在内存中是以二进制形式存放的。数值是以补码表示的。整型: 一个正数的补码和其原码的形式相同。而负数的补码方式是将其绝对值的二进制形式“按位求反再加1”实型: 在内存中占4个字节,是按照指数形式存储的,实型数据分为小数部分和指数部分,分别存放!计算机用二进制表示小数部分,用2的幂次来表示指数部分!字符型: 在内存中字符的存储实际上是把字符相对应的ASCII代码放到存储单元中的。而这些ASCII代码值在计算机中也是以二进制形式存放的。这个与整型的存储很相似。因此这两类之间的转换也比较方便!
是的,确实是补码
整数都是以补码形式存储的,跟C语音没关系,用什么语言都是这么规定的
其他3条回答
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。【图文】C语言程序设计(第2版)第2章_数据的存储与运算_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&10W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
C语言程序设计(第2版)第2章_数据的存储与运算
&&C语言程序设计(第2版)清华大学出版社 谭浩强著
阅读已结束,下载本文到电脑
想免费下载本文?
登录百度文库,专享文档复制特权,积分每天免费拿!
你可能喜欢C语言中什么叫实型数据?_百度知道
C语言中什么叫实型数据?
我有更好的答案
C语言中的实型数据是指带有小数的数。比如:1.23,87.225等根据精度的高低,实型数据又分为单精度实型、双精度实型和长双精度实型。
采纳率:70%
除了整数之外的实数,就是小数和指数
为您推荐:
其他类似问题
c语言的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。}

我要回帖

更多关于 实型和浮点型 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信