【问题标题】:Convert Binary To Decimal Using Array and Loop使用数组和循环将二进制转换为十进制
【发布时间】:2016-03-18 05:25:54
【问题描述】:

我正在尝试编写一个将二进制转换为十进制的 VB 函数。我需要将二进制长度存储在一个数组中并使用循环来找到我的答案。我一直试图弄清楚这一点。这就是我目前所拥有的,也许你能帮上忙。

Public Function binaryToDecimal(ByVal Binary As String)
    Dim myDecimal As Integer
    Dim blength As Integer = Binary.Length
    Dim index(blength) As Integer
    For index = index To 0 Step -1
        myDecimal += Binary * (2 ^ (blength - 1))
        blength = blength - 1
    Next
    Return myDecimal
End Function

【问题讨论】:

  • 这几天过去了,我不禁注意到你从那以后一直在线。我很好奇,我的回答有帮助吗?

标签: arrays vb.net loops binary converter


【解决方案1】:

我根本不懂你的代码……你甚至从来没有用任何东西填充数组。如果二进制字符串包含零 (0),您也不会执行任何操作。

但是如果你想将二进制转换为十进制,这里有一个简单的方法(你并不需要一个数组):

Public Function BinaryToDecimal(ByVal Binary As String) As Integer
    Dim ReturnValue As Integer = 0
    Dim x As Integer = 1
    For i = Binary.Length - 1 To 0 Step -1
        If Binary.Chars(i) = "1"c Then
            ReturnValue += x
        End If
        x += x
    Next
    Return ReturnValue
End Function

函数从字符串的末尾开始并向后移动。它会为每个字符自行递增x,如果当前字符为“1”,则ReturnValue 会递增当前x

该函数将例如将1111 转换为15,将100000 转换为32,并将1011101001 转换为745

已测试:http://ideone.com/SsZ3d2

希望这会有所帮助!


编辑:

还值得一提的是,该函数不支持字符串中的空格。如果你想让它这样做,请告诉我,我也会添加它。

【讨论】:

    猜你喜欢
    • 2021-12-10
    • 2015-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-10
    • 2016-12-25
    • 2010-12-08
    • 1970-01-01
    相关资源
    最近更新 更多