先来一道例题:
#include<stdio.h> int main() { char a=-1; char b=255; unsigned char c=-1; unsigned char d=255; int e=a; int f=b; int h=c; int i=d; unsigned int j=a; unsigned int k=b; unsigned int x=c; unsigned int y=d; printf("%d\n",a);//-1 printf("%d\n",b);//-1 printf("%d\n",c);//255 printf("%d\n",d);//255 printf("%d\n",e);//-1 printf("%d\n",f);//-1 printf("%d\n",h);//255 printf("%d\n",i);//255 printf("%d\n",j);//4294967295 printf("%d\n",k);//4294967295 printf("%d\n",x);//255 printf("%d\n",y);//255 }知识点:
char : -128-127
unsigned :0-255
若不在此范围内,方法:绝对值相加等于256!!!
因此:
char a=-1;//在范围内,-1 char b=255;//不在范围内,-1 unsigned char c=-1;//不在范围内,255 unsigned char d=255;//在范围内,255 unsigned int j=a;//4294967295 unsigned int k=b;//4294967295(-1)2=1111 1111 1111 1111 1111 1111 1111 1111
-1的unsigned int为最大值-1,即2的32次方
