python - 将 4 位整数转换为 boolean 列表

标签 python integer boolean bit

我有一个整数,我知道它在 0 到 15 之间,即可以用 4 位表示。我想将该数组的位表示形式作为 boolean 数组,即

0: [False, False, False, False],
1: [True, False, False, False],
2: [False, True, False, False],
# [...]
15: [True, True, True, True]

我怎样才能最好地做到这一点?

最佳答案

通过格式化为二进制:

def int_to_bool_list(num):
   bin_string = format(num, '04b')
   return [x == '1' for x in bin_string[::-1]]

或按位与:

def int_to_bool_list(num):
    return [bool(num & (1<<n)) for n in range(4)]

第一个函数需要反转 bin_string 的内容(使用 [::-1]),因为字符串格式按照我们阅读的方式格式化数字 - 最重要的位在前,而问题要求的位是最低有效位优先。

关于python - 将 4 位整数转换为 boolean 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33608280/

相关文章:

python - 使用 Python 重命名和移动文件

c# - 如何将 BitArray 转换为单个 int?

java - Java中如何检查文本框中是否输入了某个值

java - 在数组列表中查找由 boolean 值定义的对象

php - 将十六进制值的字符串转换为 PHP 中 boolean 值的数组

python - 从Python中的列表(玩家的手)中删除用户定义的对象(一张牌)

python - Pycharm不显示情节

python - 如何使用 cx_freeze 卡住一些 python 测试?

Java递归和整数双位数

Python:为什么 0.01.as_integer_ratio() 返回 5764607523034235/576460752303423488