问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

【中级软件设计师】原码、反码、补码、移码 (附软考真题)

创作时间:
作者:
@小白创作中心

【中级软件设计师】原码、反码、补码、移码 (附软考真题)

引用
CSDN
1.
https://blog.csdn.net/weixin_43821410/article/details/135449556

本文主要讲解计算机中的原码、反码、补码和移码的概念,并通过软考真题进行实例解析。文章适合备考软考的考生阅读,帮助理解这些基本概念并掌握相关计算方法。

一、历年真题

  1. 计算机中常采用原码、反码、补码和移码表示数据,其中,±0编码相同的是()。(2009年上半年)
  • A. 原码和补码
  • B. 反码和补码
  • C. 补码和移码
  • D. 原码和移码
  1. 若某整数的16位补码为FFFFh (H表示十六进制),则该数的十进制值为()。(2010年上半年)
  • A. 0
  • B. -1
  • C. 2^16- 1
  • D. -2^16+ 1
  1. 若某计算机采用8位整数补码表示数据,则运算()将产生溢出。(2010年下半年)
  • A. -127+1
  • B. -127-1
  • C. 127+1
  • D. 127-1
  1. 原码表示法和补码表示法是计算机中用于表示数据的两种编码方法,在计算机系统中常采用补码来表示和运算数据,原因是采用补码可以()。(2011年上半年)
  • A. 保证运算过程与手工运算方法保持一致
  • B. 简化计算机运算部件的设计
  • C. 提高数据的运算速度
  • D. 提高数据的运算精度
  1. 某机器字长为n,最高位是符号位,其定点整数的最大值为()。(2014年上半年)
  • A. 2^n-1
  • B. 2^(n-1)- 1
  • C. 2^n
  • D. 2^(n-1)
  1. 如果“2X”的补码是“90H”,那么X的真值是()。(2016年上半年)
  • A. 72
  • B. -56
  • C. 56
  • D. 111
  1. 采用n位补码(包含一个符号位)表示数据,可以直接表示数值()。(2018年下半年)
  • A. 2^n
  • B. -2^n
  • C. 2^(n-1)
  • D. -2^(n-1)

二、考点:原码、反码、补码、移码

1. 原码、反码、补码、移码

原码表示法中,最高位是符号位,0表示正数,1表示负号,其余的 n - 1 位表示数值的绝对值。

反码表示法中,最高位是符号位,0表示正数,1表示负号,正数的反码与原码相同,负数的反码则是其绝对值按位取反

补码表示法中,最高位是符号位,0表示正数,1表示负号,正数的补码与其原码和反码相同,负数的补码则等于其反码的末位加1

编码 +0 -0 规则
原码 0000 0000 1000 0000
反码 0000 0000 1111 1111 负数的反码是在其原码基础上,符号位不变,其余各位取反。
补码 0000 0000 0000 0000 负数的补码是在其原码基础上,符号位不变,其余各位取反,最后+1。(即在反码的基础上+1)。
移码 1000 0000 1000 0000 补码的基础上将符号位取反

编码 +1 -1 规则
原码 0000 0001 1000 0001
反码 0000 0001 1111 1110 负数的反码是在其原码基础上,符号位不变,其余各个位取反。
补码 0000 0001 1111 1111 负数的补码是在其原码基础上,符号位不变,其余各位取反,最后+1。(即在反码的基础上+1)。
移码 1000 0001 0111 1111 补码的基础上将符号位取反

注意:
①**±0编码相同(唯一)的是补码和移码。补码没有±0之分。
[[X]补]补 =[X]原**(常用于题目计算)

2. 数值范围

编码 定点整数 定点小数
原码 - (2^(n-1)- 1) ~ + (2^(n-1)-1) -127 ~ +127 - (1 - 2^(n-1)) ~ + (1 - 2^(n-1))
反码 - (2^(n-1)- 1) ~ + (2^(n-1)-1) -127 ~ +127 - (1 - 2^(n-1)) ~ + (1 - 2^(n-1))
补码 - 2^(n-1)~ + (2^(n-1)-1) -128 ~ +127 -1 ~ + (1 - 2^(n-1)) 常用于加减运算,补码可以简化计算机部件的设计
移码 - 2^(n-1)~ + (2^(n-1)-1) -128 ~ +127 -1 ~ + (1 - 2^(n-1)) 常用于浮点数的阶码

三、真题的答案与解析

答案

  1. C
  2. B
  3. C
  4. B
  5. B
  6. B
  7. D

解析

第1题:在补码中0具有唯一编码。将补码符号位取反可以得到移码,因此对于0来说,移码和补码是唯一的,±0编码相同。

假设字长为8位 +0 -0
原码 0000 0000 1000 000
反码 0000 0000 1111 1111
补码 0000 0000 0000 000
移码 1000 0000 1000 000

第3题:考查【补码的数据范围】
釆用8位补码表示整型数据时,可表示的数据范围为:-2^(n-1)~ + (2^(n-1)-1),即**-128 ~ +127**,那么运算127+1=128将产生溢出,答案选C。

第2、6题:均考查 [[X]补]补 = [X]原

第2题:
① 先将十六进制FFFFh转化成二进制1111 1111 1111 1111,根据最高位是符号位,1表示负数,0表示正数,即该数为负数;
② 根据[[X]补]补 = [X]原,即补码1111 1111 1111 1111,先转化为反码:1000 0000 0000 0000,再转化为补码:1000 0000 0000 0001,即整数的16位补码为FFFFh的二进制原码表示为1000 0000 0000 0001,最高位为符号位,1表示负数,结果为-1,答案选B。

第6题:
① 先将十六进制90H转化成二进制1001 0000,根据最高位是符号位,1表示负数,0表示正数,即该数为负数;
② 根据[[X]补]补 = [X]原,即补码1001 0000,先转化为反码:1110 1111,再转化为补码:1111 0000,即2X的二进制原码表示为1111 0000,最高位为符号位,1表示负数,转化为十进制为-112,即2X = -112,X = -56,答案选B。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号