首页 > 编程知识 正文

char类型的取值范围,char数据类型取值范围

时间:2023-05-04 19:23:03 阅读:182393 作者:132

提出问题,为什么char的取值范围是-128-127或0-255呢?

进一步解答:

概念总体: char型占1字节,1字节8比特。计算机中储存数字储存的是补码,正数的原始返回值相同;

char为无符号时: 8位的位分布为0000(0000时最小值为0,8位的位分布为1111 1111时最大值为2^8-1=255;

在char是有符号类型情况下:由于最高位比特是符号比特,所以数值上的最大值为111 1111

即2^7-1=127; 那么,还有1位比特作为符号比特保留。 那不就是表示取值范围为-127—127吗? 为什么是-128呢?

3 .接下来谈谈-128的由来:

理由-127-127共有255个数字,但8位的位数共有256中并列组合。 有符号的类型中0000 0000表示数值为0。 1000000表示数值为-0。 中,1个0有2种表示,表示1种数组组合为100000000。 很明显那么多位置不会浪费-127-127都有对应的表示。 1000 0000最高位为1,表示负数。 那么,只能安排在下面了。 (规定,规定,规定) 100 0000表示-128。

理由2 )定义char n=-128,-128的原代码为1 1000 0000,反代码为原代码的编码位不变,其他位逐位取反1 0111 1111,辅助代码为反代码1 1000 0000

4 .验证1000 0000==128;

如图所示,定义带符号的char变量,并将128代入其中。 128的二进制序列为1000 0000,但输出时为-128。 这意味着出现1000 0000个序列时,缺省值为-128,不进行任何转换。

剩下的类型用这个类推;

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。