char类型数据的取值范围如何确定

    char类型数据是计算机编程语言中只可容纳单个字符的一种基本数据类型,取值范围为-128~+127。对于上述概念相信大家都已经很熟悉了,但仍有不少同学对于char类型数据的取值范围抱有疑问,不知道为什么char类型数据的取值范围如何确定。

    若要解释这个问题,首先要明确一点,这里的-128~+127所代表的是char和signed char类型数据的取值范围,对于unsigned char类型的数据,其取值范围为0~255。

char类型数据的取值范围如何确定_第1张图片

     无论是signed char还是unsigned char,char型数据只可容纳单个字符,所以char型数据所定义的变量所开辟的空间只有一个字节大小,即只能容纳八位二进制数字。

char类型数据的取值范围如何确定_第2张图片

    明确了signed char 和unsigned char的区别,我们在讨论char型数据取值范围时也要进行分别讨论。

    对于signed char型数据来说,最高位代表的是符号位,“1”代表负数,“0”代表正数,所以只有剩下的七位是数值位。 

char类型数据的取值范围如何确定_第3张图片

     这时我们可以很容易地思考出来,如果计算出signed char中总共存有多少组不同类型的数据,再计算出它们的最大值和最小值,就可以得到signed char数据类型的取值范围了。

    那么signed char中可以存有多少组不同的数据呢?答案是256种,如下图所示:

char类型数据的取值范围如何确定_第4张图片

     如上图所示,按照二进制升序排列,一共有256组不同的数据。从图中来看,从上到下取值范围为0000 0000~0111 1111,也就是十进制0~127,从下到上取值范围为1111 1111~1000 0000,也就是十进制-1~-127。

    对于unsigned char来说,八位数据全代表数值,不表示正负,也就是说unsigned char所定义的类型均为正数。如图所示,可以看出unsigned char数据存储范围是0~255。

char类型数据的取值范围如何确定_第5张图片

     

你可能感兴趣的:(C语言学习笔记,c语言)