32 位计算机中,C++ 的整型变量 int 能够表示的数据范围是()。
这道题考的是32位有符号整型的表示范围,核心是补码规则:最高位当符号位,所以范围是-2^31到2^31-1。拿到题先确认int默认有符号、位数32,再直接套公式。
最容易掉进两个坑:一是把int当成无符号数,误选B项2^32(那是无符号的总容量,不是范围);二是死记2^31却忽略符号位,误选A项或D项。D项的上下界都写反了,A项漏掉负数部分。记住:有符号32位,负数多一个(-2^31),正数少一个(2^31-1),这是补码的不对称特性。
32位计算机中,C++的int默认是有符号整型,采用补码表示。补码规则:最高位是符号位(0正1负),数值位共31位。因此最小负数是符号位为1、其余全为0,即-2^31;最大正数是符号位为0、其余全为1,即2^31-1。范围写作:-2^31 ~ 2^31-1。
命题人常在这里挖坑:把无符号的总容量2^32混作范围,或把有符号范围写成对称的2^31~2^31-1,甚至故意颠倒上下界。这道题四个选项里,A漏掉负数,B偷换概念,D上下界全反,只有C完全符合补码定义。