C语言中int/float/double/long/unsighed long型分别占几个字节?
在C语言中不同的编译器占位会不同。
1、在16位系统里占的字节
int类型2,long类型4,float类型4,double类型4和char类型1
2、在32位系统里占的字节
nt类型4 ,long类型4 ,float类型4 ,double类型8和char类型1
扩展资料
c语言中int long float double 等类型输出表示
%c输出的是一个单字节字符
%f输出的是单精度实数
%d输出的是十进制整形数
%e输出的是科学记数法的实行数
%s输出是字符串
%g输出双精度实型数
%ld输出的是long类型的数
%lld输出的是long long 类型的数
%u输出的是无符号整形数
printf("%.10lf\n",f_a)输出小数点后10位,否则默认是小数点后6位
double 类型的输出为printlf("%lf",a);
例如: double d=123456789.12345;
printf("%.2lf",d);
不同的计算机是不完全一样的。
int 表示2或4字节
float表示4字节
double表示8字节
unsighed long表示8个字节
源代码如下:
#include<stdio.h>
int main()
{
printf("char=%d\n", sizeof(char));
printf("short=%d\n", sizeof(short int));
printf("int=%d\n", sizeof(int));
printf("float=%d\n", sizeof(float));
printf("double=%d\n", sizeof(double));
printf("long double=%d\n", sizeof(long double));
return 0;
}
扩展资料
1、从 int 转换成 float,数字不会溢出,但是可能被舍入。
2、从 int、float 转换成 double,能够保留精确的数值。因为 double 有更大的范围和更高的精度(有效位数)。
3、从 double 转换成 float,因为 float 范围要小一些,所以值可能溢出成 +∞ 或 -∞。另外由于float精度较小,还可能被舍入。
4、从 float、double 转换成 int,值将会向零舍入。如1.999会被转成1,-1.999会被转成-1。同时值可能会溢出。
各数据类型所占字符数如下:
int 4字节
float 4字节
double 8字节
long 4字节
unsigned long 4字节
可以通过如下的语句进行验证。
printf("%d\n", sizeof(int)); // 计算int型所占字节数
printf("%d\n", sizeof(float)); // 计算float型所占字节数
printf("%d\n", sizeof(double)); // 计算double型所占字节数
printf("%d\n", sizeof(long)); // 计算long型所占字节数
printf("%d\n", sizeof(unsigned long)); // 计算unsigned long型所占字节数
long 4 字节
float 4 字节
double 8 字节
char 1字节