“原码、反码、补码、移码 考点”的版本间的差异
Jihongchang(讨论 | 贡献) |
Jihongchang(讨论 | 贡献) |
||
第1行: | 第1行: | ||
+ | == 题1 == | ||
设机器字长为8,对于二进制编码1010 1100,如果它是某整数x的补码表示,则x的真值为(), | 设机器字长为8,对于二进制编码1010 1100,如果它是某整数x的补码表示,则x的真值为(), | ||
第6行: | 第7行: | ||
A、52 B、84 C、172 √ D、204 | A、52 B、84 C、172 √ D、204 | ||
+ | |||
第19行: | 第21行: | ||
然后反码转原码:“符号位不变,其余位按位取反”就是 1101 0100,真值就是 -(2<sup>6</sup> + 2<sup>4</sup>+2<sup>2</sup>)=-(64+16+4)=-84 | 然后反码转原码:“符号位不变,其余位按位取反”就是 1101 0100,真值就是 -(2<sup>6</sup> + 2<sup>4</sup>+2<sup>2</sup>)=-(64+16+4)=-84 | ||
− | |||
无符号整数y的话,全部是整数就是 | 无符号整数y的话,全部是整数就是 | ||
第57行: | 第58行: | ||
− | + | == 题2 == | |
− | |||
计算机中常用原码、反码、补码和移码表示数据,其中表示0时仅用一个编码的是()。 | 计算机中常用原码、反码、补码和移码表示数据,其中表示0时仅用一个编码的是()。 | ||
第73行: | 第73行: | ||
− | + | == 题3 == | |
在定点二进制运算中,减法运算一般通过()来实现。 | 在定点二进制运算中,减法运算一般通过()来实现。 | ||
2022年9月2日 (五) 06:21的版本
题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、补码运算的二进制加法器 √