以下是一个示例代码,用于保留一个数的最显著位,并清除其他位。
def clear_bits_except_msb(num):
# 计算最显著位的位置
msb_position = 0
while num > 1:
num = num >> 1
msb_position += 1
# 保留最显著位,清除其他位
result = 1 << msb_position
return result
# 测试示例
num = 37 # 二进制表示为 100101
result = clear_bits_except_msb(num)
print(bin(result)) # 输出 100000
这个示例代码首先通过右移运算符 >>
来计算出最显著位的位置 msb_position
。然后,通过左移运算符 <<
将最显著位的位置转换为对应的数字,并将其他位清零。最后,输出结果。
上一篇:保留最近的X个提交和历史记录
下一篇:保留最新版本/删除旧版本