Chinaunix首页 | 论坛 | 博客
  • 博客访问: 172010
  • 博文数量: 27
  • 博客积分: 495
  • 博客等级: 下士
  • 技术积分: 299
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-07 19:22
文章分类

全部博文(27)

文章存档

2013年(4)

2012年(1)

2011年(22)

我的朋友

分类: Python/Ruby

2011-09-13 19:01:13

   本身有符号char类型只有-128~127,而无符号字符型用来表示字符0-255表示字符ASCII码,int类型化为字符输出的话就要整型数1378%256 余数就是char类型的字符  则该输出的字符为b!
 Q:为什么SCHAR_MIN = -128,而自己通过计算得到的char型变量的最小值为-127呢?

           A:绝大部分机器采用补码方式表示有符号整数,

                [-1]补码 = 11111111 ?

                -1 取绝对值 1

                  1 原码 00000001

                  1 反码 11111110

                  反码+1 11111111

                  符号位置为1 11111111 <-- -1的补码

            

               依次类推,[-2]补码 = 11111110 [-3]补码 = 11111101 ... [-128]补码 = 10000000,

               故char型最小值为-128。

               而自己通过计算得到的-127仅仅是将127取负作为最小值,其实在机器中它应该是倒数第二小值。

阅读(3825) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~