2019-07-23_Work_Day2

day2作业:

1.下列四组数,依次为二进制、八进制和十六进制,符合要求的是(d

a. 12, 77, 10

b. 12, 80, 10

c. 11, 78, 19

d. 11, 77, 19

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

a. 1001

b. 1010

c. 1110

d. 1101

3.八进制754中的数码7对应的位权是(c)

a. 10^2 b. 16^1 c. 8^2 d. 2^2

4.十进制数53转换成二进制数是(b)

a. 100101

b. 110101

c.100100

d.110100

32 16 4 1

110101

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

a. 6

b. 7

c. 8

d. 9

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

2 ^ 6 + 2 ^ 0

2 ^ 2 + 2 ^ -3

7. n = 6784,以下能够获取到7 的方法有(cd

a. n / 1000 % 100

b. n % 1000 / 100

c. n // 100 % 10

d. n // 10 % 100 // 10

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

2.5 + 5 * 2 - 30

2.5 + 10 - 30

-17.5

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

仅表示低八位运算

-10:(原码)10001010 —> (补码) 11110110

-20:(原码)10010100 —> (补码) 11101100

-10 - 20 = -10 + (-20) = 11110110 + 11101100 = 11100010(补码) —> (原码) 10011110 = -30

10.写代码获取数字n=1234中每一位上的数
def get_num(n):
    """获取数字n中每一位上的数"""
    num = []
    while n != 0:
        n_len = int(math.log10(n) + 1)
        num += [int(n // math.pow(10, n_len - 1))]
        n = n % math.pow(10, n_len - 1)
    print(num)


def get_num2(n):
    """获取数字n中每一位上的数"""
    num = []
    n_len = int(math.log10(n) + 1)
    for i in range(n_len - 1, -1, -1):
        num += [int(n // math.pow(10, i))]
        n = n % math.pow(10, i)
    print(num)


if __name__ == '__main__':
    get_num(1234)
    get_num2(1234)
11.写代码统计一个任意整数m是几位数,并且逆序打印出每一位数字。(0基础不做, 不能用字符串来做)
例如: m=123, 打印: m是3位数 3 2 1
m=45321, 打印:m是5位数 1 2 3 5 4
def reverse_num(m):
    """统计一个任意整数m是几位数,并且逆序打印出每一位数字"""
    m_len = int(math.log10(m) + 1)
    num = []
    for i in range(m_len):
        num += [m % 10]
        m = m // 10
    print('m是%d位数' % m_len, num)


if __name__ == '__main__':
    reverse_num(45321)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容