【问题标题】:How to Convert Binary String into Array Of Integer Bit using Excel VBA如何使用 Excel VBA 将二进制字符串转换为整数位数组
【发布时间】:2011-03-14 01:51:03
【问题描述】:

在我的 Excel 宏编码中,我很难解决这个问题。我的输入数据是二进制字符串“1110”。需要提取二进制字符串并将二进制的每一位按顺序返回到数组中(作为整数位)。请帮助我...非常感谢您对指导的帮助。

对于每个位 = 1,该位的数组值 = 2 的幂。最后,将所有值相加。示例:

输入 = 1110(二进制字符串)存储到数组 (i) 中。 i = 3(输入的总位数 =4)

Array (0) = 1^2 to the pwr of 0 = 1
Array (1) = 1^2 to the pwr of 1 = 2
Array (2) = 1^2 to the pwr of 2 = 4
Array (3) = 1^2 to the pwr of 3 = 8

要返回的最终输出是所有数组列表的总和。在这种情况下,它将是 15

【问题讨论】:

    标签: arrays string excel binary vba


    【解决方案1】:

    从我的头顶不经测试,这会让你接近。

    Dim bin as String
    
    bin="1101"
    
    Dim bits(Len(bin)) as Integer
    
    Dim bitIndex as Integer
    
    Dim sum as Integer
    sum = 0
    For bitIndex = 0 to Len(bin)-1
      bits(bitIndex) = CInt(Mid(bin,bitIndex+1, 1)) * (2 ^ bitIndex)
      Debug.Print bits(bitIndex)
      sum = sum + bits(bitIndex) 
    Next
    
    Debug.Print sum
    

    【讨论】:

    • 感谢雷内。我已经想太多了。这是一个简单可行的灵魂。非常感谢您...非常感谢您的帮助
    【解决方案2】:

    您可以使用内置的Excel函数BIN2DEC(来自分析工具包)得到最终答案

    【讨论】:

    • 我担心 BIN2DEC 在这里不起作用,因为我不是在寻找直接的二进制到十进制的转换。一旦从二进制字符串中获得二进制,就必须用 2 的幂来操作它并将所有值相加。不过感谢查尔斯的建议:)
    猜你喜欢
    • 1970-01-01
    • 2020-05-30
    • 2012-02-27
    • 1970-01-01
    • 2018-12-11
    • 2011-02-10
    • 2012-07-20
    • 2019-05-18
    相关资源
    最近更新 更多