python - 如何修改整数中的位?

标签 python binary bit

我有一个值为 7 (0b00000111) 的整数,我想用 13 ( >0b00001101)。替换整数中的位的最佳算法是什么?

例如:

set_bits(somevalue, 3, 1) # What makes the 3rd bit to 1 in somevalue?

最佳答案

这些适用于任何大小的整数,甚至大于 32 位:

def set_bit(value, bit):
    return value | (1<<bit)

def clear_bit(value, bit):
    return value & ~(1<<bit)

如果你喜欢简短的东西,你可以使用:

>>> val = 0b111
>>> val |= (1<<3)
>>> '{:b}'.format(val)
'1111'
>>> val &=~ (1<<1)
'1101'

关于python - 如何修改整数中的位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12173774/

相关文章:

python - 如何将 keras image_dataset_from_directory 与自定义结构一起使用?

c - 找出负数和正数二进制数之间的差异

c - 使用c程序查找我的微 Controller 是8位还是16位

c - 在 C 中移位位值

python - 在 Python 中按子值对字典进行排序

python - 在后台运行 shell 命令并使用 python 将 stdout 通过管道传输到日志文件

python - Pandas groupby 按特定标签获取总行的百分比

c - 数组的二进制插入排序不起作用(C 代码)

binary - WiX - 如何创建 bin 子目录?

c++ - 如何将二进制输入存储在 C++ 数组中