算法 – 最短比特序列逻辑

我试图了解最短位序列是如何工作的.我的意思是逻辑.我需要为它创建一个程序,但实际上并不知道这个最短的位序列是什么.我试图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

相关文章

文章浏览阅读903次。文章主要介绍了收益聚合器Beefy协议在币...
文章浏览阅读952次。比特币的主要思路是,构建一个无中心、去...
文章浏览阅读2.5k次。虚拟人从最初的不温不火,到现在步入“...
文章浏览阅读1.3k次,点赞25次,收藏13次。通过调查和分析用...
文章浏览阅读1.7k次。这个智能合约安全系列提供了一个广泛的...
文章浏览阅读1.3k次。本文描述了比特币核心的编译与交互方法...