数字 的负二进制表示是它在基数 (即,负 2 基数) 中的表示。 因此,它由系数 给出,其中
(1)
| |||
(2)
|
其中 。
将 转换为负二进制可以使用 Wolfram 语言 代码完成
Negabinary[n_Integer] := Module[ {t = (2/3)(4^Floor[Log[4, Abs[n] + 1] + 2] - 1)}, IntegerDigits[BitXor[n + t, t], 2] ]
由 D. Librik (Szudzik) 提供。 按位 XOR 部分最初由 Schroeppel (1972) 提出,他指出 中的位序列由 给出。
下表给出了前几个整数的负二进制表示 (OEIS A039724)。
负二进制 | 负二进制 | ||
1 | 1 | 11 | 11111 |
2 | 110 | 12 | 11100 |
3 | 111 | 13 | 11101 |
4 | 100 | 14 | 10010 |
5 | 101 | 15 | 10011 |
6 | 11010 | 16 | 10000 |
7 | 11011 | 17 | 10001 |
8 | 11000 | 18 | 10110 |
9 | 11001 | 19 | 10111 |
10 | 11110 | 20 | 10100 |
如果这些数字被解释为二进制数并转换为十进制,它们的值为 1, 6, 7, 4, 5, 26, 27, 24, 25, 30, 31, 28, 29, 18, 19, 16, ... (OEIS A005351)。 在 二进制 和负二进制中具有相同表示的数字是 Moser-de Bruijn 序列 的成员,0, 1, 4, 5, 16, 17, 20, 21, 64, 65, 68, 69, 80, 81, ... (OEIS A000695)。