CSP-J 入门级 · CSP 2024 入门级第一轮 第 1 题

选择题 · 答案 C · 考点:基本数据类型、数据表示、变量与常量

← 整套速查表 CSP-J 入门级 全部真题

题目

32 位 int 类型的存储范围是( )?

答案:C

考点

基本数据类型数据表示变量与常量

解题思维

这题就是考补码那点事儿。拿到题别慌,先想32位里最高位是符号位,剩下31位全1才是最大正数,而0只占一种编码,所以负数能多一个,直接锁定下界是-2^31,上界是2^31-1,选C就对了。

常见错误

最容易栽跟头的就是下界,很多人凭直觉觉得正负对称,死记-2147483647,结果把最小值少算了一。上界也有人记成2^31,忘了符号位不能用来表示数值。还有少数同学会把无符号整数的范围混进来,以为int能跑到2147483648,其实那得是unsigned int。记住,补码里0只有一个编码,多出来的那个名额给了最小负数,这就是为什么范围不是对称的。

详细解析(节选)

这道题考什么

这题考查的是有符号整数的补码表示范围,属于基础中的基础,但年年必考,命题人最爱在这里挖坑。

知识点人话版

32位int在内存里就是32个0或1。最高位(第32位)是符号位:0代表正,1代表负。剩下31位是数值位。

关键点来了:在补码规则下,0只有一种编码(32个0)。因为0只占了一个名额,所以32位能表示的负数会比正数多一个。也就是说,最大正数是31位全1,最小负数是31位全1再加一个1(符号位),即-2^31。

同考点真题

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断