c++有符号字符型啥意思求详细解释
答案:2 悬赏:60 手机版
解决时间 2021-02-23 15:37
- 提问者网友:寂寞撕碎了回忆
- 2021-02-22 16:25
c++有符号字符型啥意思求详细解释
最佳答案
- 五星知识达人网友:未来江山和你
- 2021-02-22 17:40
计算机底层编码里都是二进制的,符号位指的是二进制编码的最高位,为1则此数为负数,为0则为正数 无符号数是不能表示负数的 比如无符号二进制0000代表0 1001代表9 所以4位二进制无符号数可以表示的10进制数的范围就是0-15 也就是 0000-1111
如果是有符号数 那么最高位为符号位,4位2进制有符号数的范围就是-7至7 也就是1111-0111
如果是有符号数 那么最高位为符号位,4位2进制有符号数的范围就是-7至7 也就是1111-0111
全部回答
- 1楼网友:执傲
- 2021-02-22 19:05
有符号字符型的表示为char,无符号字符型的表示为unsigned char,两者在内存中都占8位(1个字节,仅限C/C++,其它较新的语言(如java)一般为16位,即2个字节,因为它们标准已经规定使用的是unicode字符集)。
其中,有符号字符型表示它在进行整数运算时是按照带符号的整数运算的,最高位为符号位(0为+,1为-),而无符号字符型最高位仍然是数值位,所以,有符号字符型的取值范围为-128~127,而无符号字符型的取值范围为0~255。
举例如下:
对于1000 0001 这个8位二进制串,如果是char型的变量,那么它运算时的含义为-127(这个需要借助补码运算得到),而如果是unsigned char型的变量,那么它运算时的含义为129,其实他们的绝对值之和刚好为256。
但是,对于格式化输出字符的时候,这两个类型的变量输出的是同样的字符,因为ascii表对应的字符是按取模得到的,256一个周期,或者更确切的理解是,如果单字节的二进制串是一样的,那么它们的字符就是一样的。
其中,有符号字符型表示它在进行整数运算时是按照带符号的整数运算的,最高位为符号位(0为+,1为-),而无符号字符型最高位仍然是数值位,所以,有符号字符型的取值范围为-128~127,而无符号字符型的取值范围为0~255。
举例如下:
对于1000 0001 这个8位二进制串,如果是char型的变量,那么它运算时的含义为-127(这个需要借助补码运算得到),而如果是unsigned char型的变量,那么它运算时的含义为129,其实他们的绝对值之和刚好为256。
但是,对于格式化输出字符的时候,这两个类型的变量输出的是同样的字符,因为ascii表对应的字符是按取模得到的,256一个周期,或者更确切的理解是,如果单字节的二进制串是一样的,那么它们的字符就是一样的。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯