【NOIP2016 提高组】9. 某计算机的 CPU 和内存之间的地址总线宽度是 32 位(bit),这台
计算机最多可以使用( )的内存。
A. 2GB B. 4GB C. 8GB D. 16GB
答案:B
解析:32bit 计算机最多的寻址单元有有 2 30(2 10*210), 4GB=22*230=2
32,1GB=2 10*2
32
1.8 计算机中带符号数的表示法
1、原码
在用二进制原码表示的数中,符号位为 0 表示正数,符号位为 1 表示负数,其余各位表
示数值部分。
如:10000010,00000010。
2、反码
反码的定义如下:
(1)对于正数,它的反码表示与原码相同。即[x]反=[x]原
(2)对于负数,则除符号位仍为“1”外,其余各位“1”换成”0”,”0”换成 1”,即
得到反码[X]反。例如[-1101001] 反=10010110。
(3)对于 0,它的反码有两种表示:[+0] 反=00…0 [-0] 反=11…1
3、补码
正数的补码就是该正数本身。
[01100100]补 =01100100
对于负数:两头的 1 不变,中间取反。(负数取反加一)
[10100100]补 =11011100
[+0]补=[-0]补=00…0。
总结:正数的原码、反码、补码相同,负数反码符号位不变其余取反,负数的补码=反
码+1。(补码的作用主要方便计算机运算)
4、BCD 码(8421 码)
BCD 码就是用二进制代码表示的十进制数,也称 BCD 数。它是用 4 位二进制代码 0000—
1001 来表示十进制数 0---9。如:39 的 BCD 码为 00111001。
练习题:
(1) 一个有符号整数的二进制补码为 1111111111101101,则其原码对应的 10 进制
为 。
(2)一个有符号整数的二进制原码为 1011010,则其反码为 ,补码为 。
(3)一个 10 进制整数-2,如果表达为带符号的 8 位 2 进制,那么其原码为 ,
反码为 ,补码为 。
参考答案:
(1) -19
(2) 反码:1100101,补码:1100110。
(3) 原码:10000010,反码:11111101,补码:11111110。
5、整数和浮点数的表示及在 C++中的运算
A、整数
整型值可以用十进制,十六进制或八进制符号指定,前面可以加上可选的符号(-或者
+)。
B、浮点数
浮点数,在计算机中用以近似表示任意某个实数。具体来说,这个实数由一个整数或定 点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到,这种表示方法类似于
基数为10 的科学记数法。用E(e)来表示指数部分。如123.456 或123e-2。
C、在 C++中表示进制数及位运算
例子:
//以0开头表示8进制 int a = 010;
//打印时以10进制打印 cout<<a<<endl;
//以0x开头表示16进制
int b = 0x1A;
//26 cout<<b<<endl;
//科学计数法,表示1 * 10^2 int c = 1e2; cout<<c<<endl;
double d = 1e-2;
cout<<d<<endl;
例子:整数的& | << >>运算
/*
&:二进制与,将两个数换算为二进制,然后做&运算 1100
101 ---- 0100
*/
int a = 5 & 12;
//打印以10进制打印
cout<<a<<endl;
int b = 5 | 12;
cout<<b<<endl;
/*
左移运算:将整数换算为二进制,然后左移1位
101 -> 左移1位 -> 1010 -> 对应十进制 10
左移:相当于将整数乘2
*/
int c = 5 << 1; cout<<c<<endl;
/*
右移运算:将整数换算为二进制,然后右移1位
101 -> 右移1位 -> 10 -> 对应十进制 2
右移:相当于将整数除2 */
int d = 5 >> 1;
cout<<d<<endl;
注意:本质上来说,计算机判断两个小数是否相等,不能用==。
【NOIP2018普及组】14.为了统计一个非负整数的二进制形式中 1 的个数,代码如下:
int CountBit(int x)
{
int ret = 0;
while (x)
{
ret++;
___________;
}
return ret;
}
则空格内要填入的语句是( )。
A. x >>= 1
B. x &= x - 1
C. x |= x >> 1
D. x <<= 1
答案:B
解析:
>>:右移运算符,5>>1,将5 换算为二进制101,右移1 得到10,转为10 进制是2,因此
右移相当于除2,<<相当于乘2。
a&b:将a 和b 分别转换为二进制进行&运算,比如:5&4 = (101) & (100) = (100) = 4。
a|b,同理,转为二进制用|运算。
【NOIP2017 提高组】2.在 8 位二进制补码中,10101011 表示的数是十进制下的( )。
A. 43 B. -85 C. -43 D.-84
答案:B
解析:10101011 对应反码是:10101010,对应原码是:11010101,对应的整数是:-85。
1.9 计算机与网络基础知识练习
一、计算机结构与组成原理
1、微型计算机的问世是由于( ) 的出现。
A)中小规模集成电路 B)晶体管电路 C) (超)大规模集成电路 D) 电子管电路
2、中央处理器(CPU)能访问的最大存储器容量取决于( ) 。
A)地址总线 B)数据总线 C) 控制总线 D) 实际内存容量
3、计算机主机是由 CPU 与( )构成的。
A. 控制器 B. 输入、输出设备 C. 运算器 D.内存储器
4、计算机系统总线上传送的信号有( )。
A.地址信号与控制信号 B. 数据信号、控制信号与地址信号
C.控制信号与数据信号 D. 数据信号与地址信号
5、不同的计算机,其指令系统也不同,这主要取决于( )。
A.所用的操作系统 B. 系统的总体结构
C.所用的 CPU D.所用的程序设计语言
6、美籍匈牙利数学家冯·诺依曼对计算机科学发展所做出的贡献是( )。
A、提出理想计算机的数学模型,成为计算机科学的理论基础。
B、是世界上第一个编写计算机程序的人。
C、提出存储程序工作原理,并设计出第一台具有存储程序功能的计算机EDVAC。
D、采用集成电路作为计算机的主要功能部件。
E、指出计算机性能将以每两年翻一番的速度向前发展。
7、下列哪个不是 CPU(中央处理单元)( )。
A. Intel Itanium B. DDR SDRAM C. AMD Athlon64
D. AMD Opteron E. IBM Power 5
8、以下哪个不是计算机的输出设备( )。
A. 音箱 B. 显示器 C. 打印机 D. 扫描仪 E. 绘图仪
9、图灵 (Alan Turing) 是 ( )。
A) 美国人 B) 英国人 C) 德国人 D) 匈牙利 E) 法国人
10、第一个给计算机写程序的人是( )。
A) Alan Mathison Turing B) Ada Lovelace C) John von Neumann
D) John Mc-Carthy E) Edsger Wybe Dijkstra
参考答案:
C A D B C
C B D B B
二、进制、编码与运算
1、算式(2047)10-(3FF)16+(2000)8的结果是( ) 。
A)(2048)10 B)(2049)10 C) (3746)8 D) (1AF7)16
2、已知 x=(0.1011010)2,则[x/2] =( ) 2 。
A) 0.1011101. B) 11110110 C) 0.0101101 D) 0.100110
3、[x]补码=10011000,其原码为( )
A)011001111 B)11101000 C)11100110 D)01100101
4、下列无符号数中,最小的数是( )
A.(11011001)2 B.(75)10 C.(37)8 D.(2A)16
5、计算机的运算速度取决于给定的时间内,它的处理器所能处理的数据量。处理器一次能
处理的数据量叫字长。 已知 64 位的奔腾处理器一次能处理 64 个信息位,相当于
( )字节。
A.8 个 B.1 个 C.16 个 D. 2个
6、十进制算术表达式:3*512+7*64+4*8+5的运算结果,用二进制表示为( )。
A. 10111100101 B.11111100101
C.1111l0100101 D.11111101101
7、十进制数 2004 等值于八进制数( )。
A. 3077 B. 3724 C. 2766 D. 4002 E. 3755
8、(2004)10 + (32)16的结果是( )。
A. (2036)10 B. (2054)16 C. (4006)10 D. (100000000110)2 E. (2036)16
9、十进制数 100.625 等值于二进制数( )。
A. 1001100.101 B. 1100100.101 C. 1100100.011 D. 1001100.11 E.
1001100.01
10、以下二进制数的值与十进制数23.456的值最接近的是( )。
A. 10111.0101 B. 11011.1111 C. 11011.0111 D. 10111.0111 E. 10111.1111
11、十进制数 13 和 14,进行“与”操作的结果是( )
A.27 B.12 C.15 D.11
12、[多选]下列关于十进制数 100 的正确说法是( )。
A)原码为 01100100B
B)反码为 64H
C)反码为 9BH
D)补码为 64H
E)补码为 9BH
参考答案:
A C B C A
B B D B D
B ABD