一、二进制基础
1.二进制数 00100100 和 00010100 的和是( )。
A.00101000
B.01100111
C.01000100
D.00111000
来源:模拟试题
正确答案:D
讲解:
2.在二进制下,1011001+()=11001101011001+( )=1100110
A. 1011
B. 1101
C. 1010
D. 1111
来源:模拟试题
正确答案:B
讲解:
3.二进制数 1011 转换成十进制数是( )。
A. 11
B. 10
C. 13
D. 12
来源:2020CSP普及组 单项选择题 第九题
正确答案:A
讲解:1×23+1×21+1×20=8+2+1=111×23+1×21+1×20=8+2+1=11,也就是。
4.在 8 位二进制补码中,10101011 表示的数是十进制下的( ).
A. 43
B. -43
C. -85
D. -84
来源:2017NOIP普及组 单项选择题 第一题
正确答案:C
讲解:因为10101011符号位为1,所以是负数,负数的补码等于逐位取反后+1。还原过程:首先10101011–1=1010101010101011–1=10101010,再逐位取反得11010101,二进制转十进制−(1×26+1×24+1×22+1×20)=−85−(1×26+1×24+1×22+1×20)=−85。
5.二进制数 11.01 在十进制下是( ).
A. 3.25
B. 4.125
C. 6.25
D. 11.125
来源:2013NOIP普及组 单项选择题 第二题
正确答案:A
讲解: (11.01)2=1×21+1×20+1×2−2=2+1+0.25=3.25(11.01)2=1×21+1×20+1×2−2=2+1+0.25=3.25。
二、进制的基本概念与进制转换
1.
来源:2010NOIP普及组 单项选择题 第十三题
正确答案:B
讲解:思考十进制转二进制除二取余的方法发现自然数x在二进制下的位数为log22向下取整。十进制n位自然数大于等于10”,小于10"+1,取对数lg210”,log210n+1)化简得(n * log210,(n + 1) * log210),可知与B最接近。
三、程序阅读
1.
代码:
1 #include <iostream>
2 using namespace std;
3
4 long long n, ans;
5 int k, len;
6 long long d[1000000];
7
8 int main() {
9 cin >> n >> k;
10 d[0] = 0;
11 len= 1;
12 ans = 0;
13 for (long long i = 0; i <n; ++i) {
14 ++d[0];
15 for (int j = 0; j + 1<len; ++j) {
16 if (d[j] == k) {
17 d[j] = 0;
18 d[j + 1] += 1;
19 ++ans;
20 }
21 }
22 if (d[len - 1] == k) {
23 d[len - 1] = 0;
24 d[len] =1;
25 ++len;
26 ++ans;
27 }
28 }
29 cout << ans << endl;
30 return 0;
31 }
假设输入的 n 是不超过22的正整数,都是不超过10000 的正整数,完成下面的判断题和单选题。
题目:
·判断题
1)若k=1,则输出ans 时,len =n。( )
2)若k>1,则输出ans 时,len 一定小于n。(
3)若k>1,则输出 ans 时,en一定大于n。( )
·单选题
4)若输入的 n 等于 : 1015,输入的为 1,则输出等于( )。
5)若输入的n 等于205,891,132,094,649( 即 330 ),输入的为3,则输出等于( )。
6)若输人的n 等于 100,010,002,000,090,输入的为10,则输出等于( )。