2019-07-23 day2 作业

1.下列四组数,依次为二进制、八进制和十六进制,符合要求的是(D
a. 12, 77, 10
b. 12, 80, 10
c. 11, 78, 19
d. 11, 77, 19

解答: 二进制的基数只有0和1,所以排除A,B答案,八进制的基数是0到7,所以排除C答案. D答案最后的
的十六进制符合要求所以D是正确答案

2.二进制数加法运算的基本特点是“逢二进一”,即0+0=0,0+1=1,1+0=1,1+1=0并进位。运用这一基本法则和十进制运算的类似规律,得出二进制数加法运算1001+101的结果为(C)
a. 1001
b. 1010
c. 1110
d. 1101

解答:101可以写为0101 所以有

1 0 0 1
0 1 0 1
1+0=1 0+1=1 0+1(进位1)=1 1+1=0并进位(进位加1)

答案为1110

3.八进制754中的数码7对应的位权是(C)
a. 10^2 b. 16^1 c. 8^2 d. 2^2

解答:7在第三位,对应八进制位权为 8^(3-1) = 8^2

4.十进制数53转换成二进制数是(B)
a. 100101
b. 110101
c.100100
d.110100

解答:

53/2 = 26 ----1

26/2 = 13 ----0

13/2 = 6 ----1

6/2 = 3----0

3/2 = 1----1

1/2 = 0----1 答案为110101 选B

5.已知,十进制中的8在X进制中表示为11,即(10)8=(X)11。请问这个X进制具体为(B)进制
a. 6
b. 7
c. 8
d. 9

解答:由进制的位权可以求X进制为 1 x (X^1) + 1=8 , X = 7

6.二进制的1000001相当十进制的,二进制的100.001可以表示为_。
A: ① 62 ② 63 ③ 64 ④ 65
B: ① 2^3+ 2^–3 ② 2^2+ 2^–2 ③ 2^3+ 2^–2 ④ 2^2+ 2^–3

解答:A题:1*(2^(7-1))+1 = 65.B题:小数点前是第三位是1,位权表示为2^2,但小数点后位权不会减一所以选4

  1. n = 6784,以下能够获取到7 的方法有(CD
    a. n / 1000 % 100
    b. n % 1000 / 100
    c. n // 100 % 10
    d. n // 10 % 100 // 10

解答:A:6784/1000 = 6.784%100 = 6.784 A错 B:6784%1000=784/100=7.84 B错

C:6784//100=67%10=7 C对 D:6784//10=678%100=78//10=7 D 对

8.以下表达式 10 / 4 + 23 // 4 * 2 - 30的计算结果是:-17.5

解答:原式=2.5+5*2-30=-17.5

9.写出计算机底层计算-10-20的步骤(补码计算和转换过程)

解答:-10 原码为 10000000 00000000 00000000 00001010

反码为11111111 11111111 11111111 11110101

补码为11111111 11111111 11111111 11110110

-20原码为10000000 00000000 00000000 00010100

反码为11111111 11111111 11111111 11101011

补码为11111111 11111111 11111111 11101100

-20与-10补码相加得-30补码为11111111 11111111 11111111 11100010

-30反码为补码-1得 11111111 11111111 11111111 11100001

-30原码为反码取反得 10000000 00000000 00000000 00011110

提醒(在反码转换为原码时,注意符号位不变)

10.写代码获取数字n=1234中每一位上的数

print(n // 1000)
print(n % 1000 // 100)
print(n % 100 // 10)
print(n % 10 )

11.写代码统计一个任意整数m是几位数,并且逆序打印出每一位数字。(0基础不做, 不能用字符串来做)
例如: m=123, 打印: m是3位数 3 2 1
m=45321, 打印:m是5位数 1 2 3 5 4

m = int(input('请输入一个整数:'))
i = 0
n = 10
while True:
    if m // n != 0:
        i += 1
        n *= 10
    else:
        i += 1
        print('m是' + str(i) + '位数', end=' ')
        break

j = i
a = 0
while j:
    print(m // 10**a % 10, end=' ')
    a += 1
    j -= 1

你可能感兴趣的:(2019-07-23 day2 作业)