我已经开始掌握一些编程基础知识,但我仍然很新且缺乏经验。我正在编写的新程序遇到问题。
我想要一个程序,将 8 位二进制数放入文本框中,按下按钮,然后显示二进制数的十进制值。
下面是我尝试过的代码:
Public Class Form1
Private Sub btnConvert_Click(sender As Object, e As EventArgs) Handles btnConvert.Click
Dim N As Integer
N = Convert.ToDouble(tbxBin.Text)
N = N Mod 2
N = N \ 2
lblAns.Text = Convert.ToString(N)
End Sub
End Class
可悲的是,当我运行该程序时,无论我输入什么二进制代码,我都只能得到十进制数 0。我很困惑,因为我被告知使用 Mod 类。当我在网上寻找问题的解决方案时,我看到了以前从未见过的技术和各种编码过程。
显然,对于我的代码,我必须重复输入的内容与用户输入的位数一样多,但是,我对如何做到这一点感到困惑。我要调暗新变量吗?
非常感谢任何和所有帮助。谢谢。
最佳答案
编辑:请参阅下面的其他方式!我读错了。
二进制转十进制:
Public Function ConvertFromBinary(ByVal input As String) As Integer
Dim ret As Integer = 0
Dim splitInput As Char() = input.ToCharArray
Dim modifier As Integer = 1
For i As Integer = splitInput.Length - 1 To 0 Step -1
Dim thisChar As Integer = Val(splitInput(i))
If thisChar = 1 Then
ret += thisChar * modifier
End If
modifier *= 2
Next
Return ret
End Function
...然后再回来:
简单回答一下?
Convert.ToString(input, 2)
然而,这并不有趣:
Public Function ConvertToBinary(ByVal input As Integer) As String
Dim ret As String = ""
While input > 0
ret &= input Mod 2
input = input \ 2
End While
Return StrReverse(ret)
End Function
关于vb.net - 使用 .NET 将二进制转换器转换为十进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21250855/