发布网友
共4个回答
热心网友
首先确定字节,然后确定位,有符号的就是-2的位次方到2的位次方–1,有符号的char是8字节,它的取值范围就是-2的7次方到2的7次方再减一
热心网友
char是一个字节也就是8位二进制数字,所以一个char的取值范围是0-255
基本上都是这样计算,就是查询各个类型的位数。
热心网友
根据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
热心网友
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