python 三进制数相加_python – 如何将两个二进制数合并为三进制数

重新解释像我这样的假人:

在三元组中“编码”两个二进制互斥数字(w& b == 0)的直接方法是:

white_black_empty = lambda w, b: int(format(b, 'b'), base=3) + \

int(format(w, 'b').replace('1','2'), base=3)

以下是所有可能的2位变体:

white_black_empty(0b00, 0b00) == 0

white_black_empty(0b00, 0b01) == 1

white_black_empty(0b01, 0b00) == 2

white_black_empty(0b00, 0b10) == 3

white_black_empty(0b00, 0b11) == 4

white_black_empty(0b01, 0b10) == 5

white_black_empty(0b10, 0b00) == 6

white_black_empty(0b10, 0b01) == 7

white_black_empty(0b11, 0b00) == 8

通过观察int(格式(w,’b’).replace(‘1′,’2′),base = 3)实际上等于int的两倍(格式(w,’b’),base = 3) (例如,20220023 == 10110013 * 2),我们得到了@Mark Dickinson在上述评论中发布的解决方案:

white_black_empty = lambda w, b: int(format(b, 'b'), base=3) + \

int(format(w, 'b'), base=3)*2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值