【问题描述】 编写一程序,从键盘输入x,y的值(十进制形式),接着将x,y转换为16位二进制,然后把x的高8位作为z的高8位,y的高8位作为z的低8位,最后输出z的值(十进制形式)。 【输入形式】 以十进制形式输入x和y的值,以空格隔开。 【输出形式】 以十进制形式在新的一行上输出z值。 【输入样例】 840 2177 【输出样例】 776 【样例说明】 840的二进制形式为: 0000 0011 0100 1000 2177的二进制形式为: 0000 1000 1000 0001 将840的高8位作为结果的高8位,2177的高8位作为结果的低8位, 所以结果为:0000 0011 0000 1000,即十进制形式为:776 【提示】 可能的话,利用库函数来实现十进制到二进制,二进制到十进制的转换。 x, y = input().split() x = int(x) y = int(y) x_bin = bin(x)[2:] #头两个字母是"0b",要去掉 y_bin = bin(y)[2:] # print("x=", x, ", x_bin=", x_bin) x_bin_16 = '0' * (16 - len(x_bin)) + x_bin y_bin_16 = '0' * (16 - len(y_bin)) + y_bin z_bin_16 = x_bin_16[0:8] + y_bin_16[0:8] print(int(z_bin_16, 2))