C语言中怎么计算一个类型的取值范围?如 char 用程序算

 我来答
kaixingui2012
推荐于2017-09-01 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6560万
展开全部

C语言中char类型占一个字节,属于有符号数,按补码进行数据存放。

如果用程序,来获取取值范围,可以设置两个变量来存储最大值和最小值,另设一个unsigned char型变量,从一个字节的0(00000000)开始累加,直到变成255(11111111),统计其中的最大和最小值。

参考代码:

#include <stdio.h>
int main()
{
    unsigned char i;
    char min, max;
    max=min=0;
    for( i=0;i<255;i++ )
    {
        if ( min>(char)i ) //按有符号数进行比较
            min=i;
        if ( max<(char)i ) //按有符号数进行比较
            max=i;
    }
    printf("min=%d max=%d\n", min, max );
    return 0;
}

运行结果:

min=-128 max=127

绝地uE7O
推荐于2017-09-17 · TA获得超过834个赞
知道答主
回答量:170
采纳率:73%
帮助的人:64.5万
展开全部
根据char的取值范围和unsigned char的取值范围的位数,如char和unsigned char都是8位,char型最高位是符号位,1代表为负数,所以为-2^7-1~~+2^7-1 即-128~+127 ,而unsigned char为2^8-1=256
即0~255
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小神秘闯闯
2014-08-28 · TA获得超过597个赞
知道小有建树答主
回答量:314
采纳率:0%
帮助的人:170万
展开全部
首先确定字节,然后确定位,有符号的就是-2的位次方到2的位次方–1,有符号的char是8字节,它的取值范围就是-2的7次方到2的7次方再减一
更多追问追答
追答
说错了是8位不是8字节
首先确定字节,然后确定位,有符号的就是-2的位–1次方到2的位–1次方–1,有符号的char是8位,它的取值范围就是-2的7次方到2的7次方再减一
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a87b4de
2014-08-28 · 超过32用户采纳过TA的回答
知道答主
回答量:107
采纳率:0%
帮助的人:59.4万
展开全部
char是一个字节也就是8位二进制数字,所以一个char的取值范围是0-255
基本上都是这样计算,就是查询各个类型的位数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式