unsigned的解惑

unsigned char,无符号字符类型,取值范围是(0-255)。
看下一个例子:
int main()
{ 
  unsigned char i=255;
  printf("%d\n",i);
  printf("%d\n",++i);
  return 0;
}
i加1后,值不是256,而是0
char a00000000|_____
这一位不存数据,表示符号
///////////////////////////////////////////////////////
unsigned a00000000|____
这一位当作存数据的 就是没有符号的意思说白了
,就都是正数由于在计算机中,整数是以补码形式存放的所以根据最高位的不同如果是1,
有符号数的话就是负数拉
如果是无符号数,则都解释为正数,同时在相同位数的情况下,所能表达的整数范围变大 
posted @ 2010-04-25 11:12  ActionBi  阅读(270)  评论(0编辑  收藏  举报