第7周 C语言程序设计(新2版) 练习2-1 确定各种类型变量的取值范围

1、确定各种类型变量的取值范围。

问题及代码:

/*determine range of types
确定各种类型变量的取值范围*/
#include<stdio.h>
#include<limits.h>
int main()
{
/*signed types有符号类型*/
printf("signed char min=%d\n",SCHAR_MIN);
printf("signed char max=%d\n",SCHAR_MAX);
printf("signed int min=%d\n",INT_MIN);
printf("signed int max=%d\n",INT_MAX);
printf("signed long min=%ld\n",LONG_MIN);
printf("signed long max=%ld\n",LONG_MAX);
printf("signed short min=%d\n",SHRT_MIN);
printf("signed short max=%d\n",SHTR_MAX);

/*unsigned types无符号类型*/
printf("unsigned char max=%d",UCHAR_MAX);
printf("unsigned int max=%d",UINT_MAX);
printf("unsigned long max=%ld",ULONG_MAX);
printf("unsigned short max=%d",USHRT_MAX);

/*ANSI C标准规定:各种类型的取值范围必须在头文件<limits.h>中定义。*/

2、利用按位运算符计算


/*determine range of types*/
#include<stdio.h>
int main()
{
/*signed types*/
printf("signed char min=%d",-(char)(unsigned char ~0 >> 1));
printf("signed char max=%d",(char)(unsigned char ~0 >> 1);
printf("signed int min=%d",-(int)(unsigned int ~0 >> 1));
printf("signed int max=%d",(int)(unsigned int ~0 >> 1);
printf("signed short min=%",(-short)(unsigned short ~0 >> 1);
printf("signed short max=%d",(short)(unsigned short ~0 >> 1));
printf("signed long min=%",(-long)(unsigned long ~0 >> 1);
printf("signed long max=%d",(long)(unsigned long ~0 >> 1));

/*unsigned types*/
printf("unsigned char max=%u",(unsigned char ~0 >> 1));
printf("unsigned int max=%u",(unsigned int ~0 >> 1));
printf("unsigned long max=%lu",(unsigned int ~0 >> 1));
printf("unsigned short max=%u",(unsigned int ~0 >> 1));

/*第一句理解:先把~0的各个二进制位全换为1,然后将结果换为(unsigned char)类型
,再将其右移一位以清除符号位,最后再转为(char)类型*/


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值