unsigned int 与 int 间的区别
unsigned int 是无符号整型,要求定义的整数一定是正整数。
当把一个负数赋值给无符号整型的变量的时候,会自动把最高位的符号位看成整数的一部分。
例如:
unsigned int a = -10;
printf("%u", a);
结果为
因为-10的在计算机中存储的补码为1111 1111 1111 1111 1111 1111 1111 0110
当计算不把最高位当作符号位,默认这是个正整数的时候,正整数的原、反、补码相同。
而这个二进制数对应的十进制数就是4294967286