我试图了解最短位序列是如何工作的.我的意思是逻辑.我需要为它创建一个程序,但实际上并不知道这个最短的位序列是什么.我试图google但是徒劳无功.我在SO上遇到了这个
Question,但是我无法理解它.任何人都可以向我解释或指导我在哪里可以理解这背后的逻辑吗?
解决方法
正如Jan Dvorak在评论中指出的那样,它只是一个以-2为基数的数字.
考虑你的例子[0,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] = 0 * (-2)^0 + 1 * (-2)^1 + 1 * (-2)^2 + 1 * (-2)^3 + 1 * (-2)^4 + 1 * (-2)^5 + 1 * (-2)^6
给出(从下往上)
[0,1] = 64 - 32 + 16 - 8 + 4 - 2 = 42