#G3OBJ04. GESP C++ 三级真题客观题|原码、反码与补码

GESP C++ 三级真题客观题|原码、反码与补码

01|2025-03-L3-SC-05

在 C++ 中,补码的主要作用是( )

{{ select(1) }}

  • 提高浮点数的精度
  • 简化整数的加减法运算
  • 增加整数的表示范围
  • 优化内存分配

02|2025-03-L3-SC-06

在 C++ 中,一个 8 位有符号整数(使用补码表示)的范围是( )

{{ select(2) }}

  • -128 到 127
  • -127 到 128
  • -256 到 255
  • 0 到 255

03|2025-06-L3-SC-02

反码表示中,零的表示形式有:

{{ select(3) }}

  • 1种
  • 2种
  • 8种
  • 16种

04|2025-06-L3-SC-03

补码 1011 1011 对应的真值是( )

{{ select(4) }}

  • -69
  • -59
  • -68
  • -58

05|2025-06-L3-SC-06

补码加法中,若符号位无进位而次高位有进位,则说明( )

{{ select(5) }}

  • 结果正确
  • 发生上溢
  • 发生下溢
  • 结果符号位错误

06|2026-06-L3-TF-01

反码运算时,产生的进位需要循环进位,即最高位产生的进位要加回到结果的最低位。

{{ select(6) }}

  • 正确
  • 错误

07|2025-03-L3-SC-03

在 8 位二进制原码表示中,八进制数 -5 的二进制形式是什么( )

{{ select(7) }}

  • 10000101
  • 11111010
  • 11111011
  • 00000101

08|2025-06-L3-SC-01

8位二进制原码能表示的最小整数是:( )

{{ select(8) }}

  • -127
  • -128
  • -255
  • -256

09|2025-06-L3-SC-04

若X的8位补码为 0000 1010,则X/2的补码是( )。

{{ select(9) }}

  • 0000 0101
  • 1000 0101
  • 0000 0101 或 1000 0101
  • 算术右移后结果取决于符号位

10|2025-12-L3-TF-09

给定一个正整数 a,当需要计算 -a 的补码时,有这样一个计算技巧:将 a 的二进制形式从右往左扫描,遇到第一个 1 之后,将找到的第一个 1 左边的所有位都取反,能得到 -a 的补码。

{{ select(10) }}

  • 正确
  • 错误

11|2026-03-L3-SC-05

8 位二进制下,十进制数 -15 的补码是( )。

{{ select(11) }}

  • 11110000
  • 10001111
  • 10010000
  • 11110001

12|2026-03-L3-SC-07

二进制数 10110101 是某数的 8 位补码,该数的十进制是( )。

{{ select(12) }}

  • -73
  • -75
  • -77
  • 75

13|2026-03-L3-SC-09

补码的情况下,关于按位取反运算,用笔计算的情况下,以下说法错误的是( )。

{{ select(13) }}

  • ~5 的结果是 -6(int 类型,32 位)
  • ~0 的结果是 0(int 类型,32 位)
  • ~(-3) 的结果是 2(int 类型,32 位)
  • ~8 的结果是 -9(int 类型,32 位)

14|2026-06-L3-TF-02

-11 的补码的一种计算方式是从右往左扫描正数的二进制形式,遇到第一个 1 之后,左边的所有位都取反。

{{ select(14) }}

  • 正确
  • 错误

15|2026-06-L3-TF-03

一个8位的二进制数补码,最大的表示范围是从 -127 到 +127。

{{ select(15) }}

  • 正确
  • 错误

16|2026-06-L3-SC-04

关于计算机编码中反码和补码,下面说法错误的是( )。

{{ select(16) }}

  • 负数的补码,一个快速方法是从右往左扫描正数的二进制形式,遇到第一个 1 之后,左边的所有位都取反。
  • 对于一个 n 位的二进制数:最大表示范围:[−(2ⁿ⁻¹) − 1, +(2ⁿ⁻¹ − 1)]。
  • 反码减法可以统一为加法。符号位可以直接参与运算。
  • 反码表示中,0 的表示不唯一:0000 0000B 和 1111 1111B。

17|2026-06-L3-SC-09

在 C++ 中,对于32位有符号整数 int 类型数据 n,关于按位取反运算符 ~,下列说法正确的是( )。

{{ select(17) }}

  • ~6 的结果是 5。
  • 按位取反满足公式 ~n = -n - 1。
  • ~0 的结果是 1。
  • ~(-2) 的结果是 -1。

18|2026-06-L3-SC-10

关于计算机中的二进制编码表示,下列说法错误的是( )。

{{ select(18) }}

  • 原码是最直观的一种有符号数表示方法。最高位(最左边的位)为符号位:0 表示正数,1 表示负数,其余位为数值位(真值的绝对值)。
  • 补码完美解决了原码和反码的缺陷,是现代计算机中表示有符号整数的标准方式。正数的补码与其原码、反码相同;负数的补码是将其对应正数的原码按位取反(得到反码),然后加 1。
  • 计算补码的一个更快的技巧:从右往左扫描正数的二进制形式,遇到第一个 1 之后,左边的所有位都取反。
  • 对于一个 n 位的二进制数,补码最大表示范围为 [−2ⁿ⁻¹, +2ⁿ⁻¹]。