1 条题解
-
0
课堂练习
- 【NOIP2009】在字长为16位的系统环境下,一个16位带符号整数的二进制补码为11111111111101101。其对应的十进制整数应该是()
A.19 B.-19 C.18 D.-18
【答案】B
【分析】由补码的定义可知二进制数(11111111111101101)其十进制真值X的关系为:,$X=-[2^{16}-(11111111111101101)_2]=-(65536-65517)=-19$。
- 【NOIP2010】一个字长为8位的整数的补码是11111001,则它的原码是()。
A.00000111 B.01111001 C.11111001 D.10000111
【答案】D
【分析】正数的补码与原码相同。负数的补码负号位为1,其余位为该数绝对值的原码按位取反然后整个数加1。11111001的首位1,作为符号位代表该数是负数,所以保留该位,11111001减1然后取反,再加上符号位1,结果是10000111。
- 【NOIP2013】把64位非零浮点数强制转换成32位浮点数后,不可能()。
A.大于原数 B.小于原数 C.等于原数 D.与原数符号相反
【答案】D
【分析】根据IEEE的规范,浮点数由符号位、尾码和阶码组成,在将64位浮点数强制转换成32位浮点数时,符号位保留不变,尾码和阶码则可能由于精度问题改变它们的值。因此大于、小于、等于原数的情况都有可能出现。
- 【NOIP2014】下列各无符号十进制整数中,能用八位二进制表示的数中最大的是()。
A.296 B.133 C.256 D.199
【答案】D
【分析】无符号八位二进制数的表示范围为0~2^8-1,即0~255,因此选项A与选项C均不能表示。
- 【NOIP2017】在8位二进制补码中,10101011表示的数是十进制下的()。
A.43 B.-85 C.-43 D.-84
【答案】B
【分析】考查补码的概念以及进制转换。首位是1表示为负数,可以参看第一章第9节内容。负数补码的原码为补码减1后取反,也就是说原码应该为补码取反后加1,也就是,对应的数值为85,所以该数字为-85。
- 【NOIP2010】2E+03表示()。
A.2.03 B.5 C.8 D.2000
【答案】D
【分析】当我们要标记或运算某个较大或较小且位数较多时,用科学记数法来简化写法,科学记数法的形式为,a能够用浮点数表示,b不能用浮点数表示。
- 【NOIP2011】计算机中的数值信息分为整数和实数(浮点数)。实数之所以能表示很大或者很小的数,是由于使用了()。
A.阶码 B.补码 C.反码 D.较长的尾数
【答案】A
【分析】一个浮点数在IEEE754标准下由三个部分组成:符号位(1位)+阶码(指数位,由补码表示,在C++里single有8位,double有11位)+有效数字位(尾数部分,在C++里single有23位,double有52位)。 转化为正常的十进制小数计算过程如下: 就是说如果转化正浮点数先将(1.有效数字位)转成十进制,然后乘上2指数位,能够看出指数位能够表达的范围非常宽(C++里single2-128~2127,double2-1024~21023),所以这就是为什么能够表达范围很宽的数,如果说要求很高的精度,那么有效数字位(尾数)的长度就得要求很高。
不定项选择题
- 【NOIP2010】在整数的补码表示法中,以下说法正确的是()。
A.只有负整数的编码最高位为1 B.在编码的位数确定后,所能表示的最小整数和最大整数的绝对值相同 C.整数0只有一个唯一的编码 D.两个用补码表示的数相加时,若在最高位产生进位,则表示运算溢出
【答案】AC
【分析】8位所对应的范围为-128~127。-1+(-1)用补码表示为11111111+11111111=11111110,11111110是-2的补码。
- 1
信息
- ID
- 13
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者