【问题标题】:How do I find the number for a custom binary rule?如何找到自定义二进制规则的编号?
【发布时间】:2020-03-01 12:09:04
【问题描述】:

正如您在下面看到的,仅查找这种新型二进制代码的数字需要一种新方法。我可以一一数一数,但如何正确实现它仍然让我头疼。


以这个二进制代码为例。

1100

并使用以下方法检测它的号码:

0011 - #1

0101 - #2

0110 - #3

1001 - #4

1010 - #5

1100 - #6

因此 1100 是 '6'

然后我们创建一个 6 的新代码,但它有更少的 1(因此有更多的 0)!用户定义少了多少个 1。在此示例中,它是 1 减去 1。所以我们可以通过以下方式找到它:

000001

000010

000100

001000

010000

100000

因此 100000 是 '6'

此外,代码应该反向工作,通过用户定义带走 2 个 0 将 100000 变为 1100,然后代码添加 1 直到它工作。 (用户只需将代码中的 1 更改为 0 即可实现反向代码功能。无需额外代码。)

代码的结尾有时需要填充。所有 1 前。 1100-1111。

【问题讨论】:

    标签: python binary binary-data


    【解决方案1】:

    “二进制规则”的描述对我来说没有任何意义,但在第一条规则中,如果您只是忽略最后一个数字,那么它就是数字的直接二进制表示。在第二条规则中,它看起来只是一个将数字向左移动的函数,这与乘以 2 的幂相同(您可以使用 log2 函数撤消它):

    % cat rules.py 
    import math
    
    bin1 = 0b1100
    bin2 = 0b100000
    print(bin1>>1)
    print(math.log2(bin2)+1)
    
    % python rules.py 
    6
    6.0
    

    【讨论】:

      猜你喜欢
      • 2021-02-13
      • 1970-01-01
      • 1970-01-01
      • 2012-01-06
      • 2012-07-14
      • 1970-01-01
      • 2022-08-23
      • 1970-01-01
      • 2022-11-16
      相关资源
      最近更新 更多