A【1-1-15】输出不同类型的整数

来源:互联网 发布:aop切面编程 性能 编辑:程序博客网 时间:2024/06/14 15:57


#include<limits.h>//极限的头文件

练习1:short 短整数,需要头文件limits 

#include<limits.h>//极限的头文件
void main99()
{
signed short sh1, sh2;//signed 可以省略,代表有符号
sh1 = 19;
sh2 = -19;
unsigned short ush;
ush = 256;
/*看他们都占几个字节呢?都是2个,说明了有符号,无符号段整数,都占据两个字节
,是16位,内存空间有限,所以呢只能存储一定范围内的数据*/


printf("%d,%d",sizeof(signed short),sizeof(unsigned short));
printf("\nsh1=%hd",sh1);//%hd输出短整数,对应有符号短整数
printf("\nsh2=%hd",sh2);
printf("\nush=%hu",ush);//%hu对应无符号短整数

system("pause");
}

练习2:打印一下数据的极限

void main98()
{
//有符号short类型的极大值和极小值分别是什么?



printf("\nmax=%hd,min=%hd",SHRT_MAX,SHRT_MIN);

//无符号short类型的极大值和极小值分别是什么?
printf("\n u max=%hd,min=%hd", USHRT_MAX, 0);//u代表无符号,无符号没有负数,最小数是0
printf("\n u max=%hu,min=%hu", USHRT_MAX, 0);
system("pause");
}

练习3:32位系统下,int与long等价

//int ,long ,unsigned int, unsigned long都占4个字节,32 位
void main97()
{
int num1 = 10, num2 = -10;
unsigned int unum = 20;
printf("\n%d,%d",sizeof(int),sizeof(unsigned int));
long long1 = 10, long2 = 20;
unsigned long ulong = 20;
printf("\n%d,%d", sizeof(long), sizeof(unsigned long));


//%d用于输出 int,long 类型的数据
//%u用于输出 unsigned int long 类型的数据
printf("\nnum1=%d,num2=%d,unum=%u",num1,num2,unum);
printf("\nlong1=%d,long2=%d,ulong=%u", long1, long2, ulong);
system("pause");
}

练习4:int和long类型的极大值和极小值

void main96()
{

//int 和long 是等价的
//unsigned int 和unsigned long是等价的
//极大值
printf("\nint max=%d,min=%d",INT_MAX,INT_MIN);
printf("\nlong max=%d,min=%d", LONG_MAX, LONG_MIN);
//极小值
printf("\nint max=%u,min=%u", UINT_MAX, 0);
printf("\nlong max=%u,min=%u", ULONG_MAX, 0);
system("pause");
}

练习5:

void main95()
{

//%d只能表示INT_MAX与INT_MIN之间的数据,越界就会出错
//%d,只能表示LONG_MAX与LONG_MIN之间的数据,越界就会出错
printf("\nint max=%d,min=%d",INT_MAX,INT_MIN);
printf("\nlong max=%d,min=%d", LONG_MAX, LONG_MIN);

printf("\nint max+1=%u,min-1=%u", INT_MAX+1, INT_MIN-1);
printf("\nlong max=1=%u,min-1=%u", LONG_MAX+1, LONG_MIN-1);


//%u只能表示UINT_MAX与0之间的数据,越界就会出错
//%u,只能表示ULONG_MAX与0之间的数据,越界就会出错
printf("\n u int max=%u,min=%u", UINT_MAX, 0);
printf("\n u long max=%u,min=%u", ULONG_MAX, 0);


printf("\n u int max+1=%u,min-1=%u", UINT_MAX+1, 0-1);
printf("\n u long max=1=%u,min-1=%u", ULONG_MAX+1, 0-1);
system("pause");
}

练习6:long long 长整数

void main94()
{
//long long是长整数,占8个字节
long long n1 = 10, n2 = -10;
unsigned long long n3 = 100;
printf("%d,%d", sizeof(long long), sizeof(unsigned long long));
//lldllu 打印long long 打印unsigned long long 
printf("\n%lld,%lld,%llu", n1, n2, n3);


//%lld表示范围>%d>%d
//%llu表示范围>%u>%u
//打印longlong 的极大值和极小值
//打印unsigned longlong 的极大值和极小值
printf("longlong max=%lld,min=%lld", LLONG_MAX, LLONG_MIN);
printf("\nunsigned longlong max=%llu,min=%llu", ULLONG_MAX, 0);


//%lld只能表示LLONG_MAX与LLONG_MIN之间的数据,越界就会出错
//%llu,只能表示ULLONG_MAX与0之间的数据,越界就会出错
printf("longlong max+1=%lld,min-1=%lld", LLONG_MAX+1, LLONG_MIN-1);
printf("\nunsigned longlong max+1=%llu,min-1=%llu", ULLONG_MAX+1, 0-1);
system("pause");
}

练习7:整数打印注意事项

我们打印数据时候,必须要在一定的范围之内,

整数的溢出

99  范围在俩位数之内,+1就溢出来,

100

练习8:八进制和十进制,十六进制,有符号,无符号

//%d有符号十进制,%o无符号八进制(打印负数出错),%x无符号十六进制(打印负数出错),无符号不能处理负数
void main93()
{
int num = 100;
printf("\n%d,%o,%x",num,num,num);//打印8进制,10进制,16进制


int num1 = 10;
int num2 = 010;//010代表8进制的10,前面带0就是8进制
int num3 = 0x10;//0x10代表16进制的10,前面带0x就是16进制
printf("\n%d,%d,%d",num1,num2,num3);
system("pause");
}

0 0
原创粉丝点击