【备战csp-j】 csp常考题目详解(4)

四.数值转换与编码

1. 十进制数 11/128 可用二进制数码序列表示为(  ) 。

A.1011/1000000

B.1011/100000000

C.0.001011

D.0.0001011

答案:D

解析:暂时未找到解决方法,以后会解决。

2. 算式(2047)10 - (3FF)16 + (2000)8 的结果是(  ) 。

A.(2048)10

B.(2049)10

C.(3746)8

D.(1AF7)16

答案:A

解析:经计算可知结果为A

3. [x]补码=10011000,其原码为(  ) 。

A.011001111

B.11101000

C.11100110

D.01100101

答案:B

解析:补码=原码取反+1;所以反推可得反码为补码-1也就是10010111,符号位不变,所以接着反推原码也就是反码取反等于11101000,故选B。

 

4. (2004)10 + (32)16 的结果是( )。

A.(2036)10

B.(2054)16

C.(4006)10

D.(100000000110)2

答案:D

解析:由于答案中有两个是十进制,所以我们优先把两个数都转为十进制。2004本来就是十进制,所以不变,而16进制的32转换为十进制就是3*16的一次方+2*16的零次方也就是48+2等于50。随后把两个数加起来得2054,可我们发现十进制没有2054这个选项,而16进制的2054不可能等于10进制的2054。所以结果只能为D

5. 十进制数 100.625 等值于二进制数( )。

A.1001100.101

B.1100100.101

C.1100100.011

D.1001100.11

答案:B

解析:小数部分乘二取整,整数部分除二取余,所以整数部分=1100100,而小数部分则为0.625*2取整得1,0.25乘二取整得0,0.5乘二正好等于1,所以结束。结果为1100100.1

01。也就是B。

 

你可能感兴趣的:(c++)