挑战408——组成原理(8)——数据的表示及其运算刷题(2)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/redRnt/article/details/83387961

本节的内容:数据的表示和运算
参考资料:408真题
百度文库王道
涉及的知识点:

  1. 数的补码,原码,移码表示
  2. 二进制与16进制
  3. 强制类型转换
  4. 定点数及其加减运算
  5. 浮点数及其加减运算

接上篇的文章

补码的表示及其大小比较

先给一个一般的规律:当使用补码表示时,如果符号位相同,那么数值位越大,码值越大。

第一题
在这里插入图片描述
分析:一般这种题目,我们都是找临界条件的,当X1 = 1,后面的全都是0的时候即(1,1000),这个值代表的是-1/2.对于补码来说,数值位越大,码值越大,所以x1 = 0,后面的随意。选D

第二题
在这里插入图片描述
分析:同种类型的题目,不过,这是一个整数而已,同样我们找临界值,-32的原码是1,100000,补码也为1,100000,所以符号相同时,数值位越大,码值越大,所以X必须为1,若此时后面都为0,显然这个时候等于 -32,所以必须其他位至少一个为1,数值位才可能大于32. 选B

第三题
在这里插入图片描述
选C,不解释了,一样的

第四题
在这里插入图片描述

分析:先注意看,题目给的是补码,所以补码是包含符号位的,扩展的是符号位,8的BCD码为1000,所以这个补码为负号,扩展位全为.扩展前后不改变位值,所以显然选B

第五题
在这里插入图片描述
在这里插入图片描述
分析:用前面的规律,这个第19题很明显的秒选D,显然数值位0000最小,代表的是-1.这个2015的真题其实也是殊途同归,最小的整数,首先一定的负数,用掉了一个1,剩下的5个0和2个1,组成最小的数值位就ok了。所以,最小应该是这样的:1,0000011,化成原码为1,1111101(即-125),选B

第六题
在这里插入图片描述
分析:这两道题目看起来都是进制之间的转换,其实不然,34稍微不注意就会出错,先看看。第一个没得说,先化成原码,再化成补码,再换成16进制数,选B
但是后面的就要注意了,这个9不是直接用16进制转成10进制就好的,很容易一开始这样做,9 X 16 +B = 155,于是误选了D,注意,人家说了含有一个符号位,那此9非彼9,那怎么办?先把这16进制化成二进制数呗,背熟了BCD码,分分钟的时,9B = 1,001 1011,这是补码(最高位为符号位,说明是个负数),于是化为原码,答案为 -101,选C

第七题
在这里插入图片描述
分析,这个时候如果我们从正面按内容的三种形式分析内容的话,就会显得很混乱,且不符合我们的计算习惯,于是我们就试试反面入手。
比如35, [-0],原码 1,0000000,反码:1,1111111,补码:1,0000000,好像这里没有答案啊,是不是我们算错了?不对!!注意题目给的是 负的0,也就是说有正的0,只有原码的表示有正负之分,补码的0的表示是唯一的!所以选A。
接下来的题目就同理了,答案是:D B D

浮点数的表示及其运算

补充知识点

等式的赋值和判断常常出现强制类型转换,不同数据类型的转换规律也不一样,常见的有char -> int -> long -> double(范围精度由小到大)。转换过程不会丢失。
但是当范围较大的转范围较小的,就可能出现舍去现象,比如int 转float,小数点后面的都会被舍去。

第一题
在这里插入图片描述

分析:先逐个分析,
对于I,先将 int i 转换成float,由于 i 是整数小数点后没有数,因此不会造成什么舍去数据的影响,最后又转换成整型,截去小数点后面的一堆,所以绕来绕去还是回到起点。正确
对于II,先把f换成整型,这就会把小数点后面的数全部截去,变成1.然后当再次换成float时,这些截去的数据,是再也不会回来的,所以是1.0000,显然不等,错误
同理,III是对的
对于IV,显然他们的精度是不一样的,相加的时候,由于阶数不同需要对阶,那么对于float来说,基本都移走了,相当于加0,于是d +f = d。显然不等
选B

第二题
在这里插入图片描述
这类题比较繁杂,需要很耐心和细心,先确定阶码,再确定真值。(注意,最高位的总是1,所以我们不用加到23位里面去算,其小数点后面的就是真值)
在这里插入图片描述

第三题
在这里插入图片描述
分析:这道题就跟刚刚那道题反过来问了,但是我们可以稍微偷懒。因为后面的18位都是0,可以不管它,于是化成:
在这里插入图片描述
第四题
在这里插入图片描述
在这里插入图片描述
分析:第五题常识选D,
18题可以投机取巧,f1是C开头,f2是B开头,那么BCD码的第一个数字肯定是1(因为大于8嘛),所以他们符号一定相同,且为负。然后看阶码,算的一个阶数是正的,一个是负的,显然对比绝对值可知,是F2大,选A.

猜你喜欢

转载自blog.csdn.net/redRnt/article/details/83387961