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

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

复习技巧:
若已掌握【原码、反码、补码、移码】相关知识,可直接刷以下真题;
若对知识一知半解,建议略读题目,掌握真题以下知识点,再返回刷题。(仅个人建议哦)
真题的答案及解析在文末❥(^_-)!

一、历年真题

1、计算机中常采用原码、反码、补码和移码表示数据,其中,±0编码相同的是()。(2009年上半年)
A. 原码和补码
B. 反码和补码
C. 补码和移码
D. 原码和移码

2、若某整数的16位补码为FFFFh (H表示十六进制),则该数的十进制值为()。(2010年上半年)
A. 0
B. -1
C. 216 - 1
D. -216 + 1

3、若某计算机采用8位整数补码表示数据,则运算()将产生溢出。(2010年下半年)
A. -127+1
B. -127-1
C. 127+1
D. 127-1

4、原码表示法和补码表示法是计算机中用于表示数据的两种编码方法,在计算机系统中常采用补码来表示和运算数据,原因是采用补码可以()。(2011年上半年)
A. 保证运算过程与手工运算方法保持一致
B. 简化计算机运算部件的设计
C. 提高数据的运算速度
D. 提高数据的运算精度

5、某机器字长为n,最高位是符号位,其定点整数的最大值为()。(2014年上半年)
A. 2n-1
B. 2n-1 - 1
C. 2n
D. 2n-1

6、如果“2X”的补码是“90H”,那么X的真值是()。(2016年上半年)
A. 72
B. -56
C. 56
D. 111

7、采用n位补码(包含一个符号位)表示数据,可以直接表示数值()。(2018年下半年)
A. 2n
B. -2n
C. 2n-1
D. -2n-1

8、计算机系统中,定点数常采用补码表示,以下关于补码表示的叙述中,错误的是()。(2023年上半年)
A. 补码零的表示是唯一的
B. 可以将减法运算转化为加法运算
C. 符号位可以与数值位一起参加运算
D. 与真值的对应关系简单且直观

9、机器字长为n位的二进制数可以用补码来表示()个不同的有符号定点小数。(2015年上半年)
A. 2n
B. 2n-1
C. 2n - 1
D. 2n-1 + 1

10、设码长为8,已知X是整数且[X]补=11111111,则x的真值为()。(2024年下半年)
A. 1
B. -1
C. 127
D. 255

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

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

原码表示法中,最高位是符号位,0表示正数,1表示负号,其余的 n - 1 位表示数值的绝对值。
反码表示法中,最高位是符号位,0表示正数,1表示负号,正数的反码与原码相同,负数的反码则是其绝对值按位取反
补码表示法中,最高位是符号位,0表示正数,1表示负号,正数的补码与其原码和反码相同,负数的补码则等于其反码的末位加1

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

注意:
±0编码相同(唯一)的是补码和移码。 补码没有±0之分。
[[X]补]补 =[X]原 (常用于题目计算)
③ 补码的特点:
a. 零的表示是唯一的
b. 可将减法运算转化为加法运算
c. 符号位可与数值位一起参加运算

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

三、真题的答案与解析

答案

1、C
2、B
3、C
4、B
5、B
6、B
7、D
8、D
9、A
10、B

解析

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

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

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

第2、6、10题:均考查 [[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。

第8题:
[+0]补 = [-0]补 = 0000 0000,即补码零的表示是唯一的。
2 - 3 = 2 + (-3) = 0000 0010 + 1111 1101 = 1111 1111
根据 [[X]补]补 =[X]原,可得:[1111 1111]补 = 1000 0001 = -1,故补码表示可以将减法运算转化为加法运算。

第10题:
根据[[X]补]补 = [X]原,即补码1111 1111,先转化为反码:1000 0000,再转化为补码:1000 0001,即 x = 1000 0001,最高位为符号位,1表示负数,结果为-1,答案选B。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值