unsigned int 和 signed int 的区别
对于 int 类型,默认是带有正负号的,也就是说 int 等同于 signed int 。
signed int ;
//等同于int,都能表示正负数
1.signed int 可以表示正整数、负整数和0,unsigned int 只能表⽰零和正整数;
2.unsigned int 的正整数最大取值是signed int 的一倍;
例如:
signed short int a;//取值范围是-32768~32767
unsigned short int a;//取值范围是:0~65535
此处两个int 可以省略,也就是说,在敲代码时,我们可以写成:
signed short a;
unsigned short a;
此外,字符类型 char 也可以设置 signed 和 unsigned
signed char c;// 范围为 -128 到 127
unsigned char c;// 范围为 0 到 255
3.signed int 在计算机中以二进制的补码存储的,有一个符号位,unsigned int 是源码存储,无符号位;
补码=反码+1 。例如:
10
源码:00000000 00000000 00000000 00001001
反码:011111111 111111111 111111111 111110110
(**符号位不变,最高位为符号位,1表示负号,0表示正号**)
补码:011111111 111111111 111111111 111111000
(补码是计算机中存储负数的形式)