algorithm - 最短位序列逻辑

标签 algorithm bit

我想了解最短位序列是如何工作的。我的意思是逻辑。我需要为它创建一个程序,但实际上并不知道这个最短的位序列是什么。我试图谷歌但徒劳无功。我遇到了这个 Question在 SO 上,但我无法从中理解任何内容。任何人都可以向我解释一下或指导我到可以理解其背后逻辑的地方吗?

最佳答案

正如 Jan Dvorak 在评论中指出的那样,它只是一个以 -2 为基数的数字。

考虑您的示例 [0, 1, 1, 1, 1, 1, 1]

-2 的指数与 2 相同,但符号交替:

(-2)^0 =   1
(-2)^1 =  -2
(-2)^2 =   4
(-2)^3 =  -8
(-2)^4 =  16
(-2)^5 = -32
(-2)^6 =  64
 ...

在位序列表示法中,最低的指数在前,即顺序与普通二进制数相反。

[0, 1, 1, 1, 1, 1, 1] = 0 * (-2)^0  +
                        1 * (-2)^1  +
                        1 * (-2)^2  +
                        1 * (-2)^3  +
                        1 * (-2)^4  +
                        1 * (-2)^5  +
                        1 * (-2)^6

它给出(从下往上)

[0, 1, 1, 1, 1, 1, 1] = 64 - 32 + 16 - 8 + 4 - 2 = 42

关于algorithm - 最短位序列逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16664454/

相关文章:

algorithm - 检查字符串替换规则是否会生成另一个字符串

c# - 算法到 "spread"在 3D 数组上递减值

java - 二维尺寸、数量和包装算法?

algorithm - 我怎样才能看到专辑来自 "Various Artists"

c++ - 有没有一种快速的方法/技巧可以在文件的开头添加一位?

math - 一个人的补充,而不只是比特的总和

c++ - 从排序数组中删除重复项

python - 写一个位翻转算法

c++ - 在 C/C++ 中,左移或右移零实际上会生成一条指令吗?

检查数字中的偶数或奇数 `1` 位