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

来自姬鸿昌的知识库
跳到导航 跳到搜索

题1

设机器字长为8,对于二进制编码1010 1100,如果它是某整数x的补码表示,则x的真值为(),

若它是某无符号整数y的机器码,则y的真值为()。

A、84 B、-84 √ C、172 D、-172

A、52 B、84 C、172 √ D、204


解:

1010 1100是补码的话,计算它的真值的话,就要先知道它的原码的值,知道原码的值就要知道反码的值,

反码到原码是“正数保持不变、负数加1”,所以转回反码要么保持不变,要么减1,是保持不变还是减1取决于它的真值是个正数还是负数;

又知道原码到反码是“原码基础上,正数保持不变,负数符号位不变,其余位按位取反”,也就是说 原码到反码的过程中符号位是不变的,

那么根据“最高位为符号位,为0表示正数,为1表示负数”,补码 1010 1100 的真值是个 负数,因为是负数,所以转回反码要减1,就是后7位 010 1100 - 1 = 010 1011;

然后反码转原码:“符号位不变,其余位按位取反”就是 1101 0100,真值就是 -(26 + 24+22)=-(64+16+4)=-84

无符号整数y的话,全部是整数就是

1 0 1 0 1 1 0 0
27 26 25 24 23 22 21 20
128 32 8 4

128+32+8+4=160+12=172


题2

计算机中常用原码、反码、补码和移码表示数据,其中表示0时仅用一个编码的是()。

A、原码和反码

B、原码和补码

C、反码和移码

D、补码和移码 √

解:参见 ±0的表示


题3

在定点二进制运算中,减法运算一般通过()来实现。

A、补码运算的二进制减法器

B、原码运算的二进制减法器

C、原码运算的二进制加法器

D、补码运算的二进制加法器 √


题4

设机器字长为8个二进制位,对于十进制数-128,其补码表示为()。

A、1111 1111

B、1111 0000

C、1000 0000 √

D、1000 1000

解:人为规定,记住