背景
整型有无符号和有符号两种类型。
在默认情况下声明的整型变量都是有符号的类型char有点特别,如果需声明无符号类型的话就需要在类型前加上unsigned。
- 32/64位系统下有符号int的取值范围:-2147483648~+2147483647
- 32/64位系统下无符号int的取值范围:0~4294967295。
C语言中,无符号整型数就是不带正负表示符号的整型数。
理解
1、那么-1的无符号整数为什么是4294967295?
无符号整数的第一位不用代表正负了,没有符号,所以16位全为有效位
-1在内存中的补码为全1,这个值为无符号整型,因此无符号整型所能表示的最大值为4294967295。
备注
正数的原码、反码和补码都为一样,所以无符号输出能把补码直接转化为10进制输出。