unsigned类型最大值:(your type)~0
int类型最大值: (unsigned int)~0 为 unsigned int类型最大值(二进制位全为1),右移1位即为int类型最大值
int类型最小值:等于int类型最大值 + 1
static const int MAX_INT = (int) ((unsigned int)~0 >> 1);
static const int MIN_INT = (int) ((unsigned int)~0 >> 1) + 1;
printf("max %d min %d \n", MAX_INT, MIN_INT);
运算结果:max 2147483647 min -2147483648