[Python3] 3×4096+14×256+5×16+17二进制包含多少个 1?

博客介绍了在Python IDLE中输入代码计算二进制结果里1的个数,还给出了笔算算法。先将式子整理成标准形式获得基准位,再画图标上每位权值,把基准对号入座,最后将因子十进制转二进制处理进位得出结果。

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

此题,打开pythonIDLE,输入代码

num = 3 * 2**12 + 7 * 2**9 + 3 * 2**5 + 1
print(bin(num))

输出结果:

0b11111001100001

数一下,共有8个1,所以是8个

如果用笔算,我给出一个算法

PS:python使用**表示^

【第一步:整理成标准形式,获得基准位】

(这里的规则是能合并尽量合并,基准位的因子为一定为奇数,如下面为3、7、3、1)

3×4096+14×256+5×16+17 = 3* 2**12 + 7 * 2**9 + 3 * 2**5 + 2**0

这样就得到了二进制的标准位表达,然后再以对应的位为基准进行计算即可:

例如这里有了4个新的基准,分别是2**12、2**9、2**5、 2**0

【第二步:画图,将每位的权值标上】

【第三步:然后将上面的四个基准对号入座】

 

【第四步,将上面的四个因子10进制转2进制,处理进位,得到结果】

这里没有进位需要合并,所以最后就是图中的2 + 3 + 2 + 1 = 8个1

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值