python 整数二进制位的组合

本文介绍了一个简单的程序设计,该程序接收两个十进制数x和y,将其转换为16位二进制,然后将x的高8位与y的高8位进行拼接,形成一个新的二进制数z,并最终输出其十进制形式。通过实例展示了具体的转换过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【问题描述】

编写一程序,从键盘输入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))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值