我正在寻找以下问题的最快解决方案:
我的函数接受十进制数dec
,然后将其转换为长度为l
的二进制数bin
。之后,我更改二进制数的i
索引处的值,并将结果转换回十进制数。目前我通过以下方式实现了这一点:
def new_dec_function(dec, i, l):
bin = list(map(int, numpy.binary_repr(dec, width=l)))
bin[i] = 1 - bin[i]
new_dec = 0
for bit in bin:
new_dec = (new_dec << 1) | bit
return new_dec
你知道这是否可以改进吗?你知道吗
你所说的“十进制”数字已经以二进制形式存储在你的计算机中,所以你所要做的就是翻转数字的第i位。这可以通过二进制异或运算符
^
轻松实现相关问题 更多 >
编程相关推荐