| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1658 人关注过本帖
标题:? 编写一个程序以确定分别由signed及unsigned限定的char,short,int,与lo ...
只看楼主 加入收藏
天衣boy
Rank: 1
来 自:中国河南
等 级:新手上路
帖 子:99
专家分:0
注 册:2016-10-20
结帖率:69.23%
收藏
 问题点数:0 回复次数:4 
? 编写一个程序以确定分别由signed及unsigned限定的char,short,int,与long类型变量的取值范围
求这个程序 简单点的
2016-11-08 21:21
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
#include<stdio.h>
#include<math.h>
int main()//vc版编译器似乎对long型没效,先忽略 long型,但是算法原理时一样的
{
    int maxint,minint;
    short maxshort,minshort;
    unsigned unmaxint,unmaxshort;
    char maxchar;
    unsigned unmaxchar;
    int i;
    for (i=maxint=1;maxint>=0;i++)
        maxint*=2;
    maxint=pow(2,i-1)-1;
    minint=-maxint-1;
    unmaxint=-minint*2-1;
    printf("maxint=%d minint=%d,unmaxint=%u,unminint=0\n",maxint,minint,unmaxint);

    for (i=maxshort=1;maxshort>=0;i++)
        maxshort*=2;
    maxshort=pow(2,i-1)-1;
    minshort=-maxshort-1;
    unmaxshort=-minshort*2-1;
    printf("maxshort=%d,minshort=%d\n",maxshort,minshort);
    printf("unmaxshort=%u,unminshort=0\n",unmaxshort);

        for (i=maxchar=1;maxchar>=0;i++)
            maxchar*=2;
        maxchar=pow(2,i-1)-1;
        unmaxchar=(maxchar+1)*2-1;
        printf("maxchar=%d,maxunchar=%u\n",maxchar,unmaxchar);
        printf("minchar=0,unminchar=0\n");
        return 0;
}

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-11-09 03:33
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
对于具符号整型
除了使用<limits.h>中预先定义好的 SCHAR_MIN/SCHAR_MAX、UCHAR_MAX、SHRT_MIN/SHRT_MAX、USHRT_MAX、…… 之外,没有其它任何办法了。
因为C标准规定,具符号类型的溢出属于未定义行为。
2016-11-09 08:24
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:0 
#include <stdio.h>
#include <limits.h>
int main(){
printf("%d %d %u\n",CHAR_MIN,CHAR_MAX,UCHAR_MAX); //char
printf("%d %d %u\n",INT_MIN,INT_MAX,UINT_MAX); //int
printf("%d %d %u\n",SHRT_MIN,SHRT_MAX,USHRT_MAX);//SHORT
}
其它的代码就不写了,自己打开limits.h看。
2016-11-09 09:49
StadyC
Rank: 6Rank: 6
等 级:侠之大者
威 望:6
帖 子:182
专家分:430
注 册:2016-10-13
收藏
得分:0 
直接用一个头文件就有了啊,limits.h
2016-11-10 10:42
快速回复:? 编写一个程序以确定分别由signed及unsigned限定的char,short,int, ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.043487 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved