A. 整形 长整形 单精度 双精度 浮点型分别是什么意思
^^整形
从 -2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647) 的整型数据(所有数字)回。存储大小答为 4 个字节。
长整形
从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。
单精度浮点数占4字节(32位)内存空间,其数值范围为3.4E-38~3.4E+38,;
双精度型占8 个字节(64位)内存空间,其数值范围为1.7E-308~1.7E+308。
B. 整型和浮点型相减的问题
printf("%lf",double(12)-int(12));
有结果,是12.0.
double的12就是12.0
解释为什么是死循环-
浮点数是二进制存储,而精确的浮点二进制存储为,整数是2的+n次方的算术和,小数是2的-n次方的算术和.例如0.5、0.25、0.125此类小数可以精确表示,而诸如0.1、0.17这类小数就有误差,具体体现在浮点数的位数波动,实际的存储值可能编程了0.1000125、0.17000025之类.
double和int的算术运算向double对齐,所以r-int(r)是一个浮点数,显然当r不是精确二进制小数时,表达式的结果含有小数位,不为double(0),会循环下去.当r较小的时候,表达式的结果仅为一个较小的纯小数,当r增大到超过int的极值+2147483648后,(int)r会被截断,r-int(r)从纯小数陡增为极大的浮点数.死循环
你可以尝试在你的设计中,把r=4.2356改成r=4.125,则不为死循环,可以得到预期结果
或者你改成r-(int)r>0.0001,这样就只有当r的小数位超过10位的截断问题.比如r=4.2356时还是无法计算,因为实际存储位数超过10位,(int)r被截断后表达式变成很大的浮点数,死循环.
我提供如下算法.判断标准比较类似>0.0001这种精确度的折中法,每次*10后判断个位,连续3次个位为0则退出循环
#include "stdio.h"
main()
{
double r;scanf("%lf",&r);
double r1=(int)r;int m=0,n=0,g;
//g表示个位,r1结合r计算个位
while(1)
{
r*=10;
r1*=10;
g=int(r-r1);
//这样提取个位比g=int(r)%10可表达的r大,后者r过大会被截断
r1+=g;
m++;
if(!g)n++;
else n=0;
if(n==3)break;
}
printf("%lf %d",r1/1000,m-3);
}
要注意的是,结果的r1/1000和m-3中只有m有效,表示浮点数实际存储的小数位,而r1在增大的过程中,可能由于位数过长而被截断,成为误差值.例如r=4.2356时,就只有m有效
C. 整型变量和浮点变量的意思和区别
整型是整来数的一部分所组成的集自合;浮点型是实数中的一部分组成的集合,带小数位。
整型变量就是存放整数的变量,在Dos下,范围是:-32668~32767;在Windows下,范围是-2的32次幂到2的32次幂-1
浮点变量:表示以浮点形式表示实数的变量,其中也规定了占用的空间量,字节数;以及表示的范围。
D. c语言中整形和浮点型是什么意思
新华的吗?哎,那是基本的数据类型,整型又分为
长整型
long好短整型short,能表回示的数据范围不同,但必须都是答整数。float是
浮点型
。就是可以表示
带小数
的数据,如1.5f而1.5是double类型,这些是基础中的基础。多看点书,多
敲点
代码吧
E. C语言中整型,字符型,浮点型,和双精度浮点型,详解
整型,计算机中的一个基本的专业术语,指没有小数部分的数据。整型可以用十进制,十六进制或八进制符号指定,前面可以加上可选的符号(- 或者 +)。包括整型常量和整型变量,整型变量又包括短整型、基本整型、长整型,它们都分为有符号和无符号两种版本,是一种智能的计算方式。
字符型量包括字符常量和字符变量。字符串常量由一对双引号括起的字符序列。字符变量的取值是字符常量,即单个字符。字符变量的类型说明符是char。字符变量类型说明的格式和书写规则都与整型变量相同。
浮点型利用指数使小数点的位置可以根据需要而上下浮动,从而可以灵活地表达更大范围的实数。
双精度浮点型,此数据类型与单精度数据类型(float)相似,但精确度比float高,编译时所占的内存空间依不同的编译器而有所不同,是double float数据类型,C/C++中表示实型变量的一种变量类型。
(5)整形短浮点扩展阅读
双精度浮点型类型数值可转换到其他类型的整数或浮点数,反之亦然。双精度浮点型常量的最后一个字符可加上“d”或“D”。其存储格式与浮点型类似,最高位为符号位,次高11位为指数位,其次52位为尾数。
双精度型就是双精度浮点型,同数值型比,它能提供更高的数值精度,采用固定存储长度的浮点数形式,每个双精度浮点型数据占8个字节。与数值型数据不同,它的小数点位置是由输入的数据值来决定的,并且只能用于表中的字段。
F. 用短整型数如何实现浮点数的计算呀
float 至少需要 int 所以,short基本无法完成你的要求。
G. 如何把整形转化为可以确定小数点位数的浮点型
精度
精度格式符来以“.”开自头,后跟十进制整数。本项的意义是:如果输出数字,则表示小数的位数;如果输出的是字符,则表示输出字符的个数;若实际位数大于所定义的精度数,则截去超过的部分。
#include "stdio.h"
#include "conio.h"
main()
{
printf("%.3d\n" , 5555);
getch();
printf("%.3f\n" , 0.88888);
getch();
printf("%.3f\n" , 0.9999);
getch();
printf("%.4s\n" , "this is a test!");
getch();
}
H. 一些整型、浮点型等之间的转换问题
char实际上是8位无符号整型,如果你用vc的话 char实际上相当于
unsigned __int8,
一般来讲 short == __int16, int == long == __int32
在vc里还有一种很少用到的超内长整 即 __int64
整数之间的相容互转换是可以直接转的。
但是如果是长转短,则会忽略短整最高位数以上的数字。
I. 整型除以浮点型是什么型
浮点型精度高于整形,因此整形数先自动被转换成浮点型,再进行除法运算,最终结果也为浮点型
J. c语言中的字符型,短整型,整型,长整型,浮点型,都是什么,具体格式都是什么
char 字符型
short 短整型
int整形
long长整型
float(单精度),double(双精度)浮点型